home *** CD-ROM | disk | FTP | other *** search
Unknown | 1988-06-12 | 16.4 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| Truevision Targa Graphic (image/tga)
| magic
| Supported |
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0e f4 3e 4d 37 | 4d 39 73 72 63 58 0d 00 |.....>M7|M9srcX..|
|00000010| 14 21 f4 20 62 79 20 52 | 6f 62 69 6e 20 4e 65 77 |.!. by R|obin New|
|00000020| 6d 61 6e 2c 20 41 70 72 | 69 6c 20 31 39 38 38 0d |man, Apr|il 1988.|
|00000030| 00 1e 45 f4 20 50 72 6f | 67 72 61 6d 20 74 6f 20 |..E. Pro|gram to |
|00000040| 63 6f 6e 76 65 72 74 20 | 6d 6f 64 65 20 37 20 73 |convert |mode 7 s|
|00000050| 63 72 65 65 6e 20 74 6f | 20 6d 6f 64 65 20 39 20 |creen to| mode 9 |
|00000060| 66 6f 72 20 67 72 61 70 | 68 69 63 73 20 64 75 6d |for grap|hics dum|
|00000070| 70 69 6e 67 0d 00 28 43 | f4 20 61 66 74 65 72 20 |ping..(C|. after |
|00000080| 75 73 65 2c 20 6f 72 69 | 67 69 6e 61 6c 20 73 63 |use, ori|ginal sc|
|00000090| 72 65 65 6e 20 61 6e 64 | 20 63 68 61 72 61 63 74 |reen and| charact|
|000000a0| 65 72 20 64 65 66 69 6e | 69 74 69 6f 6e 73 20 72 |er defin|itions r|
|000000b0| 65 73 74 6f 72 65 64 0d | 00 32 42 f4 20 72 65 73 |estored.|.2B. res|
|000000c0| 75 6c 74 69 6e 67 20 6d | 61 63 68 69 6e 65 20 63 |ulting m|achine c|
|000000d0| 6f 64 65 20 75 74 69 6c | 69 74 79 20 72 75 6e 73 |ode util|ity runs|
|000000e0| 20 69 6e 20 52 4d 41 20 | 61 72 65 61 2c 20 61 6e | in RMA |area, an|
|000000f0| 64 20 73 65 6c 65 63 74 | 73 0d 00 3c 43 f4 20 61 |d select|s..<C. a|
|00000100| 6e 64 20 75 73 65 73 20 | 77 6f 72 6b 73 70 61 63 |nd uses |workspac|
|00000110| 65 20 66 72 6f 6d 20 74 | 68 69 73 20 61 72 65 61 |e from t|his area|
|00000120| 2c 20 77 68 69 63 68 20 | 69 73 20 72 65 73 74 6f |, which |is resto|
|00000130| 72 65 64 20 6f 6e 20 65 | 78 69 74 2e 0d 00 46 41 |red on e|xit...FA|
|00000140| f4 20 70 72 6f 67 72 61 | 6d 20 69 73 20 62 61 73 |. progra|m is bas|
|00000150| 65 64 20 6f 6e 20 61 6e | 20 6f 72 69 67 69 6e 61 |ed on an| origina|
|00000160| 6c 20 42 41 53 49 43 20 | 70 72 6f 67 72 61 6d 20 |l BASIC |program |
|00000170| 63 61 6c 6c 65 64 20 53 | 49 4d 55 4c 38 0d 00 50 |called S|IMUL8..P|
|00000180| 19 f4 20 62 72 6f 61 64 | 63 61 73 74 20 6f 6e 20 |.. broad|cast on |
|00000190| 43 45 45 46 41 58 0d 00 | 5a 05 3a 0d 00 64 49 f4 |CEEFAX..|Z.:..dI.|
|000001a0| 20 54 6f 20 75 73 65 20 | 74 68 65 20 75 74 69 6c | To use |the util|
|000001b0| 69 74 79 20 74 79 70 65 | 20 2a 4d 37 4d 39 20 3c |ity type| *M7M9 <|
|000001c0| 6e 61 6d 65 3e 20 77 68 | 65 72 65 20 3c 6e 61 6d |name> wh|ere <nam|
|000001d0| 65 3e 20 69 73 20 74 68 | 65 20 63 6f 6d 6d 61 6e |e> is th|e comman|
|000001e0| 64 20 74 6f 0d 00 6e 37 | f4 20 61 63 74 69 76 61 |d to..n7|. activa|
|000001f0| 74 65 20 74 68 65 20 6d | 61 63 68 69 6e 65 20 63 |te the m|achine c|
|00000200| 6f 64 65 20 67 72 61 70 | 68 69 63 73 20 64 75 6d |ode grap|hics dum|
|00000210| 70 20 72 65 71 75 69 72 | 65 64 2e 0d 00 78 42 f4 |p requir|ed...xB.|
|00000220| 20 65 67 20 2a 4d 37 4d | 39 20 48 61 72 64 43 6f | eg *M7M|9 HardCo|
|00000230| 70 79 46 58 2e 20 54 68 | 65 20 73 61 6d 65 20 63 |pyFX. Th|e same c|
|00000240| 6f 6d 6d 61 6e 64 20 73 | 74 72 69 6e 67 20 63 61 |ommand s|tring ca|
|00000250| 6e 20 62 65 20 75 73 65 | 64 20 66 6f 72 0d 00 82 |n be use|d for...|
|00000260| 4b f4 20 67 72 61 70 68 | 69 63 73 20 6d 6f 64 65 |K. graph|ics mode|
|00000270| 73 2c 20 69 6e 20 77 68 | 69 63 68 20 63 61 73 65 |s, in wh|ich case|
|00000280| 20 4d 37 4d 34 20 6a 75 | 6d 70 73 20 73 74 72 61 | M7M4 ju|mps stra|
|00000290| 69 67 68 74 20 74 6f 20 | 74 68 65 20 64 75 6d 70 |ight to |the dump|
|000002a0| 20 70 72 6f 67 72 61 6d | 0d 00 8c 05 3a 0d 00 96 | program|....:...|
|000002b0| 10 de 20 63 6f 64 65 25 | 20 26 38 30 30 0d 00 a0 |.. code%| &800...|
|000002c0| 11 4f 53 5f 57 72 69 74 | 65 49 3d 32 35 36 0d 00 |.OS_Writ|eI=256..|
|000002d0| aa 08 f2 61 73 6d 0d 00 | b4 31 ff 28 22 53 41 56 |...asm..|.1.("SAV|
|000002e0| 45 20 4d 37 4d 39 20 22 | 2b c3 7e 73 74 61 72 74 |E M7M9 "|+.~start|
|000002f0| 2b 22 20 2b 22 2b c3 7e | 28 66 69 6e 69 73 68 2d |+" +"+.~|(finish-|
|00000300| 73 74 61 72 74 29 29 0d | 00 be 17 ff 22 53 45 54 |start)).|...."SET|
|00000310| 54 59 50 45 20 4d 37 4d | 39 20 46 46 43 22 0d 00 |TYPE M7M|9 FFC"..|
|00000320| c8 05 e0 0d 00 d2 09 dd | f2 61 73 6d 0d 00 dc 0d |........|.asm....|
|00000330| e3 5a 25 3d 30 b8 32 88 | 32 0d 00 e6 0c 50 25 3d |.Z%=0.2.|2....P%=|
|00000340| 63 6f 64 65 25 0d 00 f0 | 0a 5b 4f 50 54 5a 25 0d |code%...|.[OPTZ%.|
|00000350| 00 fa 0a 2e 73 74 61 72 | 74 0d 01 04 2a 53 55 42 |....star|t...*SUB|
|00000360| 20 52 31 33 2c 52 31 33 | 2c 23 33 30 20 5c 61 6c | R13,R13|,#30 \al|
|00000370| 6c 6f 77 20 66 6f 72 20 | 73 74 61 63 6b 20 22 62 |low for |stack "b|
|00000380| 75 67 22 0d 01 0e 14 53 | 54 4d 46 44 20 52 31 33 |ug"....S|TMFD R13|
|00000390| 21 2c 7b 52 31 34 7d 0d | 01 18 31 4d 4f 56 20 52 |!,{R14}.|..1MOV R|
|000003a0| 30 2c 52 31 20 5c 70 6f | 69 6e 74 65 72 20 74 6f |0,R1 \po|inter to|
|000003b0| 20 63 6f 6d 6d 61 6e 64 | 20 6c 69 6e 65 20 70 61 | command| line pa|
|000003c0| 72 61 6d 65 74 65 72 73 | 0d 01 22 31 4c 44 52 42 |rameters|.."1LDRB|
|000003d0| 20 52 30 2c 5b 52 30 5d | 20 5c 63 68 65 63 6b 20 | R0,[R0]| \check |
|000003e0| 66 69 72 73 74 20 70 61 | 72 61 6d 65 74 65 72 20 |first pa|rameter |
|000003f0| 63 68 61 72 61 63 74 65 | 72 0d 01 2c 25 43 4d 50 |characte|r..,%CMP|
|00000400| 20 52 30 2c 23 33 32 20 | 5c 69 73 20 69 74 20 61 | R0,#32 |\is it a|
|00000410| 20 63 6f 6e 74 72 6f 6c | 20 63 68 61 72 3f 0d 01 | control| char?..|
|00000420| 36 3c 41 44 52 43 43 20 | 52 30 2c 70 61 72 61 6d |6<ADRCC |R0,param|
|00000430| 65 72 72 20 5c 65 72 72 | 6f 72 20 69 66 20 73 6f |err \err|or if so|
|00000440| 3b 20 6c 6f 61 64 20 52 | 30 20 77 69 74 68 20 65 |; load R|0 with e|
|00000450| 72 72 6f 72 20 62 6c 6f | 63 6b 0d 01 40 1b 42 43 |rror blo|ck..@.BC|
|00000460| 43 20 65 72 72 65 78 69 | 74 20 5c 65 72 72 6f 72 |C errexi|t \error|
|00000470| 20 65 78 69 74 0d 01 4a | 12 41 44 52 20 52 30 2c | exit..J|.ADR R0,|
|00000480| 77 6b 73 70 61 63 65 0d | 01 54 1e 53 54 52 20 52 |wkspace.|.T.STR R|
|00000490| 31 32 2c 5b 52 30 5d 20 | 5c 73 61 76 65 20 77 6b |12,[R0] |\save wk|
|000004a0| 73 70 61 63 65 0d 01 5e | 27 2e 63 6f 70 79 20 5c |space..^|'.copy \|
|000004b0| 63 6f 70 79 20 70 61 72 | 61 6d 65 74 65 72 73 20 |copy par|ameters |
|000004c0| 74 6f 20 77 6f 72 6b 73 | 70 61 63 65 0d 01 68 13 |to works|pace..h.|
|000004d0| 4c 44 52 42 20 52 32 2c | 5b 52 31 5d 2c 23 31 0d |LDRB R2,|[R1],#1.|
|000004e0| 01 72 14 53 54 52 42 20 | 52 32 2c 5b 52 31 32 5d |.r.STRB |R2,[R12]|
|000004f0| 2c 23 31 0d 01 7c 0e 43 | 4d 50 20 52 32 2c 23 33 |,#1..|.C|MP R2,#3|
|00000500| 32 0d 01 86 0c 42 43 53 | 20 63 6f 70 79 0d 01 90 |2....BCS| copy...|
|00000510| 1f 4d 4f 56 20 52 32 2c | 23 30 20 5c 74 65 72 6d |.MOV R2,|#0 \term|
|00000520| 69 6e 61 74 65 20 77 69 | 74 68 20 30 0d 01 9a 11 |inate wi|th 0....|
|00000530| 53 54 52 42 20 52 32 2c | 5b 52 31 32 5d 0d 01 a4 |STRB R2,|[R12]...|
|00000540| 21 4d 4f 56 20 52 30 2c | 23 31 33 35 20 5c 63 68 |!MOV R0,|#135 \ch|
|00000550| 65 63 6b 20 6d 6f 64 65 | 20 2d 3e 20 52 32 0d 01 |eck mode| -> R2..|
|00000560| ae 11 53 57 49 20 22 4f | 53 5f 42 79 74 65 22 0d |..SWI "O|S_Byte".|
|00000570| 01 b8 35 43 4d 50 20 52 | 32 2c 23 37 20 5c 69 66 |..5CMP R|2,#7 \if|
|00000580| 20 6e 6f 74 20 6d 6f 64 | 65 20 37 20 62 79 70 61 | not mod|e 7 bypa|
|00000590| 73 73 20 73 63 72 65 65 | 6e 20 63 6f 6e 76 65 72 |ss scree|n conver|
|000005a0| 73 69 6f 6e 0d 01 c2 14 | 42 4e 45 20 67 72 61 70 |sion....|BNE grap|
|000005b0| 68 69 63 5f 6d 6f 64 65 | 0d 01 cc 22 4d 4f 56 20 |hic_mode|..."MOV |
|000005c0| 52 30 2c 23 35 20 5c 63 | 68 65 63 6b 20 52 4d 41 |R0,#5 \c|heck RMA|
|000005d0| 20 77 6f 72 6b 73 70 61 | 63 65 0d 01 d6 14 53 57 | workspa|ce....SW|
|000005e0| 49 20 22 58 4f 53 5f 4d | 6f 64 75 6c 65 22 0d 01 |I "XOS_M|odule"..|
|000005f0| e0 3d 43 4d 50 20 52 32 | 2c 23 26 42 34 30 20 5c |.=CMP R2|,#&B40 \|
|00000600| 69 73 20 74 68 65 69 72 | 20 65 6e 6f 75 67 68 20 |is their| enough |
|00000610| 72 6f 6f 6d 20 66 6f 72 | 20 75 74 69 6c 69 74 79 |room for| utility|
|00000620| 20 77 6f 72 6b 73 70 61 | 63 65 3f 0d 01 ea 3b 41 | workspa|ce?...;A|
|00000630| 44 52 43 43 20 52 30 2c | 52 4d 41 65 72 72 20 5c |DRCC R0,|RMAerr \|
|00000640| 65 72 72 6f 72 20 69 66 | 20 6e 6f 74 3b 20 52 30 |error if| not; R0|
|00000650| 20 70 6f 69 6e 74 73 20 | 74 6f 20 65 72 72 6f 72 | points |to error|
|00000660| 20 62 6c 6f 63 6b 0d 01 | f4 0c 2e 65 72 72 65 78 | block..|...errex|
|00000670| 69 74 0d 01 fe 21 54 45 | 51 43 43 50 20 52 31 35 |it...!TE|QCCP R15|
|00000680| 2c 23 31 3c 3c 32 38 20 | 5c 73 65 74 20 56 20 66 |,#1<<28 |\set V f|
|00000690| 6c 61 67 0d 02 08 1b 4c | 44 4d 43 43 46 44 20 52 |lag....L|DMCCFD R|
|000006a0| 31 33 21 2c 7b 50 43 7d | 20 5c 65 78 69 74 0d 02 |13!,{PC}| \exit..|
|000006b0| 12 27 4d 4f 56 20 52 30 | 2c 23 36 20 5c 63 6c 61 |.'MOV R0|,#6 \cla|
|000006c0| 69 6d 20 77 6f 72 6b 73 | 70 61 63 65 20 66 72 6f |im works|pace fro|
|000006d0| 6d 20 52 4d 41 0d 02 1c | 10 4d 4f 56 20 52 33 2c |m RMA...|.MOV R3,|
|000006e0| 23 26 42 34 30 0d 02 26 | 14 53 57 49 20 22 58 4f |#&B40..&|.SWI "XO|
|000006f0| 53 5f 4d 6f 64 75 6c 65 | 22 0d 02 30 2a 4c 44 4d |S_Module|"..0*LDM|
|00000700| 56 53 46 44 20 52 31 33 | 21 2c 7b 50 43 7d 20 5c |VSFD R13|!,{PC} \|
|00000710| 65 78 69 74 20 69 66 20 | 63 6c 61 69 6d 20 66 61 |exit if |claim fa|
|00000720| 69 6c 73 0d 02 3a 3a 41 | 44 52 20 52 30 2c 76 61 |ils..::A|DR R0,va|
|00000730| 72 61 64 64 20 5c 73 61 | 76 65 20 70 6f 69 6e 74 |radd \sa|ve point|
|00000740| 65 72 20 74 6f 20 52 4d | 41 20 77 6f 72 6b 73 70 |er to RM|A worksp|
|00000750| 61 63 65 20 69 6e 20 76 | 61 72 61 64 64 0d 02 44 |ace in v|aradd..D|
|00000760| 0f 53 54 52 20 52 32 2c | 5b 52 30 5d 0d 02 58 3e |.STR R2,|[R0]..X>|
|00000770| 5c 66 72 6f 6d 20 68 65 | 72 65 20 6f 6e 77 61 72 |\from he|re onwar|
|00000780| 64 73 20 72 65 67 73 20 | 61 72 65 20 75 73 65 64 |ds regs |are used|
|00000790| 20 61 73 20 66 6f 6c 6c | 6f 77 73 3b 20 52 30 2d | as foll|ows; R0-|
|000007a0| 52 31 20 73 63 72 61 74 | 63 68 0d 02 62 42 5c 52 |R1 scrat|ch..bB\R|
|000007b0| 32 3d 63 68 61 72 2c 20 | 52 33 3d 63 68 61 72 5f |2=char, |R3=char_|
|000007c0| 73 74 6f 72 65 2c 20 52 | 34 20 67 72 61 70 68 5f |store, R|4 graph_|
|000007d0| 66 6f 6e 74 2c 20 52 35 | 3d 64 6f 75 62 6c 65 5f |font, R5|=double_|
|000007e0| 72 6f 77 2c 20 52 36 3d | 66 6f 6e 74 0d 02 6c 47 |row, R6=|font..lG|
|000007f0| 5c 52 37 3d 6d 6f 64 65 | 2c 20 52 38 3d 58 2c 20 |\R7=mode|, R8=X, |
|00000800| 52 39 3d 59 2c 20 52 31 | 30 3d 68 6f 6c 64 5f 63 |R9=Y, R1|0=hold_c|
|00000810| 68 61 72 2c 20 52 31 31 | 3d 66 6f 72 65 67 72 6f |har, R11|=foregro|
|00000820| 75 6e 64 2c 20 52 31 32 | 3d 62 61 63 6b 67 72 6f |und, R12|=backgro|
|00000830| 75 6e 64 0d 02 76 47 5c | 72 65 67 69 73 74 65 72 |und..vG\|register|
|00000840| 73 20 61 72 65 20 66 69 | 72 73 74 20 73 61 76 65 |s are fi|rst save|
|00000850| 64 20 6f 6e 20 73 74 61 | 63 6b 20 69 66 20 75 73 |d on sta|ck if us|
|00000860| 65 64 20 66 6f 72 20 6f | 74 68 65 72 20 74 65 6d |ed for o|ther tem|
|00000870| 70 6f 72 61 72 79 20 75 | 73 65 0d 02 80 05 5c 0d |porary u|se....\.|
|00000880| 02 8a 3b 5c 63 6f 6e 73 | 74 61 6e 74 73 20 65 6d |..;\cons|tants em|
|00000890| 70 6c 6f 79 65 64 3b 20 | 61 6c 70 68 61 6e 75 6d |ployed; |alphanum|
|000008a0| 65 72 69 63 73 3d 30 2c | 20 63 6f 6e 74 69 67 75 |erics=0,| contigu|
|000008b0| 6f 75 73 3d 31 32 38 2d | 33 32 0d 02 94 42 5c 73 |ous=128-|32...B\s|
|000008c0| 65 70 61 72 61 74 65 64 | 3d 31 32 38 2c 20 67 72 |eparated|=128, gr|
|000008d0| 61 70 68 5f 6d 6f 64 65 | 3d 31 2c 20 68 6f 6c 64 |aph_mode|=1, hold|
|000008e0| 5f 67 72 61 70 68 69 63 | 73 3d 32 2c 20 64 6f 75 |_graphic|s=2, dou|
|000008f0| 62 6c 65 5f 68 65 69 67 | 68 74 3d 34 0d 02 9e 15 |ble_heig|ht=4....|
|00000900| 5c 75 70 70 65 72 3d 31 | 2c 20 6c 6f 77 65 72 3d |\upper=1|, lower=|
|00000910| 35 0d 02 b2 1f 42 4c 20 | 73 61 76 65 20 5c 73 61 |5....BL |save \sa|
|00000920| 76 65 20 6d 6f 64 65 20 | 37 20 73 63 72 65 65 6e |ve mode |7 screen|
|00000930| 0d 02 bc 25 53 57 49 20 | 22 4f 53 5f 57 72 69 74 |...%SWI |"OS_Writ|
|00000940| 65 53 22 20 5c 63 68 61 | 6e 67 65 20 74 6f 20 6d |eS" \cha|nge to m|
|00000950| 6f 64 65 20 39 0d 02 c6 | 16 45 51 55 42 32 32 3a |ode 9...|.EQUB22:|
|00000960| 45 51 55 42 39 3a 41 4c | 49 47 4e 0d 02 d0 19 4d |EQUB9:AL|IGN....M|
|00000970| 4f 56 20 52 35 2c 23 30 | 20 5c 64 6f 75 62 6c 65 |OV R5,#0| \double|
|00000980| 5f 72 6f 77 0d 02 da 34 | 42 4c 20 73 61 76 65 63 |_row...4|BL savec|
|00000990| 68 61 72 20 5c 73 61 76 | 65 20 65 78 69 73 74 69 |har \sav|e existi|
|000009a0| 6e 67 20 63 68 61 72 61 | 63 74 65 72 20 64 65 66 |ng chara|cter def|
|000009b0| 69 6e 69 74 69 6f 6e 73 | 0d 02 e4 31 42 4c 20 64 |initions|...1BL d|
|000009c0| 65 66 63 68 61 72 73 20 | 5c 64 65 66 69 6e 65 20 |efchars |\define |
|000009d0| 6e 65 77 20 63 68 61 72 | 61 63 74 65 72 20 64 65 |new char|acter de|
|000009e0| 66 69 6e 69 74 69 6f 6e | 73 0d 02 ee 12 4d 4f 56 |finition|s....MOV|
|000009f0| 20 52 39 2c 23 30 20 5c | 59 3d 30 0d 02 f8 20 2e | R9,#0 \|Y=0... .|
|00000a00| 72 6f 77 73 74 61 72 74 | 20 5c 59 20 6c 6f 6f 70 |rowstart| \Y loop|
|00000a10| 20 75 6e 74 69 6c 20 59 | 3e 32 34 0d 03 02 29 4d | until Y|>24...)M|
|00000a20| 4f 56 20 52 34 2c 23 31 | 32 38 2d 33 32 20 5c 67 |OV R4,#1|28-32 \g|
|00000a30| 72 61 70 68 5f 66 6f 6e | 74 20 63 6f 6e 74 69 67 |raph_fon|t contig|
|00000a40| 75 6f 75 73 0d 03 0c 21 | 4d 4f 56 20 52 36 2c 23 |uous...!|MOV R6,#|
|00000a50| 30 20 5c 66 6f 6e 74 20 | 61 6c 70 68 61 6e 75 6d |0 \font |alphanum|
|00000a60| 65 72 69 63 73 0d 03 16 | 15 4d 4f 56 20 52 37 2c |erics...|.MOV R7,|
|00000a70| 23 30 20 5c 6d 6f 64 65 | 20 30 0d 03 20 1d 4d 4f |#0 \mode| 0.. .MO|
|00000a80| 56 20 52 31 30 2c 23 33 | 32 20 5c 68 6f 6c 64 5f |V R10,#3|2 \hold_|
|00000a90| 63 68 61 72 20 33 32 0d | 03 2a 22 43 4d 50 20 52 |char 32.|.*"CMP R|
|00000aa0| 35 2c 23 31 20 5c 64 6f | 75 62 6c 65 5f 72 6f 77 |5,#1 \do|uble_row|
|00000ab0| 20 3d 20 75 70 70 65 72 | 3f 0d 03 34 25 ec 51 20 | = upper|?..4%.Q |
|00000ac0| 52 35 2c 23 35 20 5c 79 | 65 73 2c 20 64 6f 75 62 |R5,#5 \y|es, doub|
|00000ad0| 6c 65 5f 72 6f 77 20 3d | 20 6c 6f 77 65 72 0d 03 |le_row =| lower..|
|00000ae0| 3e 23 4d 4f 56 4e 45 20 | 52 35 2c 23 30 20 5c 6e |>#MOVNE |R5,#0 \n|
|00000af0| 6f 2c 20 64 6f 75 62 6c | 65 5f 72 6f 77 20 3d 20 |o, doubl|e_row = |
|00000b00| 30 0d 03 48 1e 4d 4f 56 | 20 52 31 31 2c 23 37 20 |0..H.MOV| R11,#7 |
|00000b10| 5c 66 6f 72 65 67 72 6f | 75 6e 64 20 3d 20 37 0d |\foregro|und = 7.|
|00000b20| 03 52 1e 4d 4f 56 20 52 | 31 32 2c 23 30 20 5c 62 |.R.MOV R|12,#0 \b|
|00000b30| 61 63 6b 67 72 6f 75 6e | 64 20 3d 20 30 0d 03 5c |ackgroun|d = 0..\|
|00000b40| 12 4d 4f 56 20 52 30 2c | 23 37 20 5c fb 20 37 0d |.MOV R0,|#7 \. 7.|
|00000b50| 03 66 0d 42 4c 20 63 6f | 6c 6f 75 72 0d 03 70 16 |.f.BL co|lour..p.|
|00000b60| 4d 4f 56 20 52 30 2c 23 | 31 32 38 20 5c fb 20 31 |MOV R0,#|128 \. 1|
|00000b70| 32 38 0d 03 7a 0d 42 4c | 20 63 6f 6c 6f 75 72 0d |28..z.BL| colour.|
|00000b80| 03 84 12 4d 4f 56 20 52 | 38 2c 23 30 20 5c 58 3d |...MOV R|8,#0 \X=|
|00000b90| 30 0d 03 8e 23 2e 63 6f | 6c 75 6d 6e 73 74 61 72 |0...#.co|lumnstar|
|00000ba0| 74 20 5c 58 20 6c 6f 6f | 70 20 75 6e 74 69 6c 20 |t \X loo|p until |
|00000bb0| 58 3e 33 39 0d 03 98 47 | 41 44 52 20 52 31 2c 76 |X>39...G|ADR R1,v|
|00000bc0| 61 72 61 64 64 20 5c 70 | 6f 69 6e 74 65 72 20 74 |aradd \p|ointer t|
|00000bd0| 6f 20 52 4d 41 20 77 6f | 72 6b 73 70 61 63 65 20 |o RMA wo|rkspace |
|00000be0| 3d 20 6d 6f 64 65 20 37 | 20 73 61 76 65 64 20 73 |= mode 7| saved s|
|00000bf0| 63 72 65 65 6e 20 73 74 | 61 72 74 0d 03 a2 2f 4c |creen st|art.../L|
|00000c00| 44 52 20 52 31 2c 5b 52 | 31 5d 20 5c 52 31 20 3d |DR R1,[R|1] \R1 =|
|00000c10| 20 73 61 76 65 64 20 6d | 6f 64 65 20 37 20 73 63 | saved m|ode 7 sc|
|00000c20| 72 65 65 6e 20 73 74 61 | 72 74 0d 03 ac 13 4d 4f |reen sta|rt....MO|
|00000c30| 56 20 52 30 2c 52 39 2c | 41 53 4c 23 35 0d 03 b6 |V R0,R9,|ASL#5...|
|00000c40| 1c 41 44 44 20 52 30 2c | 52 30 2c 52 39 2c 41 53 |.ADD R0,|R0,R9,AS|
|00000c50| 4c 23 33 20 5c 59 2a 34 | 30 0d 03 c0 17 41 44 44 |L#3 \Y*4|0....ADD|
|00000c60| 20 52 30 2c 52 30 2c 52 | 38 20 5c 61 64 64 20 58 | R0,R0,R|8 \add X|
|00000c70| 0d 03 ca 34 4c 44 52 42 | 20 52 32 2c 5b 52 31 2c |...4LDRB| R2,[R1,|
|00000c80| 52 30 5d 20 5c 67 65 74 | 20 6e 65 78 74 20 62 79 |R0] \get| next by|
|00000c90| 74 65 20 66 72 6f 6d 20 | 73 61 76 65 64 20 73 63 |te from |saved sc|
|00000ca0| 72 65 65 6e 0d 03 d4 1c | 80 20 52 32 2c 52 32 2c |reen....|. R2,R2,|
|00000cb0| 23 31 32 37 20 5c 80 20 | 77 69 74 68 20 31 32 37 |#127 \. |with 127|
|00000cc0| 0d 03 de 20 54 53 54 20 | 52 32 2c 23 33 32 20 5c |... TST |R2,#32 \|
|00000cd0| 20 69 73 20 63 68 61 72 | 20 80 20 33 32 20 3e 30 | is char| . 32 >0|
|00000ce0| 0d 03 e8 22 41 44 44 4e | 45 20 52 32 2c 52 32 2c |..."ADDN|E R2,R2,|
|00000cf0| 52 36 20 5c 61 64 64 20 | 66 6f 6e 74 20 69 66 20 |R6 \add |font if |
|00000d00| 73 6f 0d 03 f2 0b 2e 62 | 65 66 6f 72 65 0d 03 fc |so.....b|efore...|
|00000d10| 0e 43 4d 50 20 52 32 2c | 23 31 32 0d 04 06 0b 42 |.CMP R2,|#12....B|
|00000d20| 4e 45 20 43 31 33 0d 04 | 10 2e 42 49 43 20 52 37 |NE C13..|..BIC R7|
|00000d30| 2c 52 37 2c 23 34 20 5c | 6d 6f 64 65 3d 6d 6f 64 |,R7,#4 \|mode=mod|
|00000d40| 65 20 80 20 ac 28 64 6f | 75 62 6c 65 5f 68 65 69 |e . .(do|uble_hei|
|00000d50| 67 68 74 29 0d 04 1a 1d | 4d 4f 56 20 52 31 30 2c |ght)....|MOV R10,|
|00000d60| 23 33 32 20 5c 68 6f 6c | 64 5f 63 68 61 72 3d 33 |#32 \hol|d_char=3|
|00000d70| 32 0d 04 24 0e 42 20 63 | 61 73 65 5f 65 6e 64 0d |2..$.B c|ase_end.|
|00000d80| 04 2e 08 2e 43 31 33 0d | 04 38 0e 43 4d 50 20 52 |....C13.|.8.CMP R|
|00000d90| 32 2c 23 31 33 0d 04 42 | 0b 42 4e 45 20 43 32 38 |2,#13..B|.BNE C28|
|00000da0| 0d 04 4c 2a 84 52 20 52 | 37 2c 52 37 2c 23 34 20 |..L*.R R|7,R7,#4 |
|00000db0| 5c 6d 6f 64 65 3d 6d 6f | 64 65 20 84 20 64 6f 75 |\mode=mo|de . dou|
|00000dc0| 62 6c 65 5f 68 65 69 67 | 68 74 0d 04 56 1f 43 4d |ble_heig|ht..V.CM|
|00000dd0| 50 20 52 35 2c 23 30 20 | 5c 69 73 20 64 6f 75 62 |P R5,#0 |\is doub|
|00000de0| 6c 65 5f 72 6f 77 20 30 | 3f 0d 04 60 27 ec 51 20 |le_row 0|?..`'.Q |
|00000df0| 52 35 2c 23 31 20 5c 69 | 66 20 79 65 73 20 64 6f |R5,#1 \i|f yes do|
|00000e00| 75 62 6c 65 5f 72 6f 77 | 20 3d 20 75 70 70 65 72 |uble_row| = upper|
|00000e10| 0d 04 6a 1b 4d 4f 56 20 | 52 31 30 2c 23 30 20 5c |..j.MOV |R10,#0 \|
|00000e20| 68 6f 6c 64 5f 63 68 61 | 72 3d 30 0d 04 74 0e 42 |hold_cha|r=0..t.B|
|00000e30| 20 63 61 73 65 5f 65 6e | 64 0d 04 7e 08 2e 43 32 | case_en|d..~..C2|
|00000e40| 38 0d 04 88 0e 43 4d 50 | 20 52 32 2c 23 32 38 0d |8....CMP| R2,#28.|
|00000e50| 04 92 0b 42 4e 45 20 43 | 32 39 0d 04 9c 1e 4d 4f |...BNE C|29....MO|
|00000e60| 56 20 52 31 32 2c 23 30 | 20 5c 62 61 63 6b 67 72 |V R12,#0| \backgr|
|00000e70| 6f 75 6e 64 20 3d 20 30 | 0d 04 a6 16 4d 4f 56 20 |ound = 0|....MOV |
|00000e80| 52 30 2c 23 31 32 38 20 | 5c fb 20 31 32 38 0d 04 |R0,#128 |\. 128..|
|00000e90| b0 0d 42 4c 20 63 6f 6c | 6f 75 72 0d 04 ba 0e 42 |..BL col|our....B|
|00000ea0| 20 63 61 73 65 5f 65 6e | 64 0d 04 c4 08 2e 43 32 | case_en|d.....C2|
|00000eb0| 39 0d 04 ce 0e 43 4d 50 | 20 52 32 2c 23 32 39 0d |9....CMP| R2,#29.|
|00000ec0| 04 d8 0b 42 4e 45 20 43 | 33 30 0d 04 e2 28 4d 4f |...BNE C|30...(MO|
|00000ed0| 56 20 52 31 32 2c 52 31 | 31 20 5c 62 61 63 6b 67 |V R12,R1|1 \backg|
|00000ee0| 72 6f 75 6e 64 20 3d 20 | 66 6f 72 65 67 72 6f 75 |round = |foregrou|
|00000ef0| 6e 64 0d 04 ec 25 41 44 | 44 20 52 30 2c 52 31 32 |nd...%AD|D R0,R12|
|00000f00| 2c 23 31 32 38 20 5c fb | 20 62 61 63 6b 67 72 6f |,#128 \.| backgro|
|00000f10| 75 6e 64 2b 31 32 38 0d | 04 f6 04 0d 05 00 04 0d |und+128.|........|
|00000f20| 05 0a 04 0d 05 14 04 0d | 05 1e 04 0d 05 28 04 0d |........|.....(..|
|00000f30| 05 32 0d 42 4c 20 63 6f | 6c 6f 75 72 0d 05 3c 0e |.2.BL co|lour..<.|
|00000f40| 42 20 63 61 73 65 5f 65 | 6e 64 0d 05 46 08 2e 43 |B case_e|nd..F..C|
|00000f50| 33 30 0d 05 50 0e 43 4d | 50 20 52 32 2c 23 33 30 |30..P.CM|P R2,#30|
|00000f60| 0d 05 5a 10 42 4e 45 20 | 63 61 73 65 5f 65 6e 64 |..Z.BNE |case_end|
|00000f70| 0d 05 64 2c 84 52 20 52 | 37 2c 52 37 2c 23 32 20 |..d,.R R|7,R7,#2 |
|00000f80| 5c 6d 6f 64 65 20 3d 20 | 6d 6f 64 65 20 84 20 68 |\mode = |mode . h|
|00000f90| 6f 6c 64 5f 67 72 61 70 | 68 69 63 73 0d 05 6e 0d |old_grap|hics..n.|
|00000fa0| 2e 63 61 73 65 5f 65 6e | 64 0d 05 78 1e 4d 4f 56 |.case_en|d..x.MOV|
|00000fb0| 20 52 33 2c 52 32 20 5c | 63 68 61 72 5f 73 74 6f | R3,R2 \|char_sto|
|00000fc0| 72 65 3d 63 68 61 72 0d | 05 82 28 54 53 54 20 52 |re=char.|..(TST R|
|00000fd0| 37 2c 23 32 20 5c 74 65 | 73 74 20 6d 6f 64 65 20 |7,#2 \te|st mode |
|00000fe0| 80 20 68 6f 6c 64 5f 67 | 72 61 70 68 69 63 73 0d |. hold_g|raphics.|
|00000ff0| 05 8c 10 42 45 51 20 6e | 6f 74 5f 68 6f 6c 64 0d |...BEQ n|ot_hold.|
|00001000| 05 96 25 54 53 54 20 52 | 37 2c 23 31 20 5c 74 65 |..%TST R|7,#1 \te|
|00001010| 73 74 20 6d 6f 64 65 20 | 80 20 67 72 61 70 68 5f |st mode |. graph_|
|00001020| 6d 6f 64 65 0d 05 a0 10 | 42 45 51 20 6e 6f 74 5f |mode....|BEQ not_|
|00001030| 68 6f 6c 64 0d 05 aa 1c | 43 4d 50 20 52 32 2c 23 |hold....|CMP R2,#|
|00001040| 33 32 20 5c 69 73 20 63 | 68 61 72 20 3c 20 33 32 |32 \is c|har < 32|
|00001050| 0d 05 b4 10 42 43 53 20 | 6e 6f 74 5f 68 6f 6c 64 |....BCS |not_hold|
|00001060| 0d 05 be 20 43 4d 50 20 | 52 31 30 2c 23 30 20 5c |... CMP |R10,#0 \|
|00001070| 69 73 20 68 6f 6c 64 5f | 63 68 61 72 20 3d 20 30 |is hold_|char = 0|
|00001080| 0d 05 c8 10 42 45 51 20 | 6e 6f 74 5f 68 6f 6c 64 |....BEQ |not_hold|
|00001090| 0d 05 d2 20 4d 4f 56 20 | 52 32 2c 52 31 30 20 5c |... MOV |R2,R10 \|
|000010a0| 63 68 61 72 20 3d 20 68 | 6f 6c 64 5f 63 68 61 72 |char = h|old_char|
|000010b0| 0d 05 dc 0d 2e 6e 6f 74 | 5f 68 6f 6c 64 0d 05 e6 |.....not|_hold...|
|000010c0| 0b 42 4c 20 64 72 61 77 | 0d 05 f0 20 4d 4f 56 20 |.BL draw|... MOV |
|000010d0| 52 32 2c 52 33 20 5c 63 | 68 61 72 20 3d 20 63 68 |R2,R3 \c|har = ch|
|000010e0| 61 72 5f 73 74 6f 72 65 | 0d 05 fa 1d 43 4d 50 20 |ar_store|....CMP |
|000010f0| 52 32 2c 23 31 32 38 20 | 5c 69 73 20 63 68 61 72 |R2,#128 |\is char|
|00001100| 3e 31 32 37 3f 0d 06 04 | 28 4d 4f 56 43 53 20 52 |>127?...|(MOVCS R|
|00001110| 31 30 2c 52 32 20 5c 69 | 66 20 79 65 73 2c 20 68 |10,R2 \i|f yes, h|
|00001120| 6f 6c 64 5f 63 68 61 72 | 3d 63 68 61 72 0d 06 0e |old_char|=char...|
|00001130| 0a 2e 61 66 74 65 72 0d | 06 18 0e 43 4d 50 20 52 |..after.|...CMP R|
|00001140| 32 2c 23 32 35 0d 06 22 | 0b 42 4e 45 20 43 32 36 |2,#25.."|.BNE C26|
|00001150| 0d 06 2c 2b 4d 4f 56 20 | 52 34 2c 23 31 32 38 2d |..,+MOV |R4,#128-|
|00001160| 33 32 20 5c 67 72 61 70 | 68 5f 66 6f 6e 74 20 3d |32 \grap|h_font =|
|00001170| 20 63 6f 6e 74 69 67 75 | 6f 75 73 0d 06 36 26 54 | contigu|ous..6&T|
|00001180| 53 54 20 52 37 2c 23 31 | 20 5c 69 73 20 6d 6f 64 |ST R7,#1| \is mod|
|00001190| 65 20 80 20 67 72 61 70 | 68 5f 6d 6f 64 65 3c 3e |e . grap|h_mode<>|
|000011a0| 30 0d 06 40 28 4d 4f 56 | 4e 45 20 52 36 2c 52 34 |0..@(MOV|NE R6,R4|
|000011b0| 20 5c 69 66 20 73 6f 20 | 66 6f 6e 74 20 3d 20 67 | \if so |font = g|
|000011c0| 72 61 70 68 5f 66 6f 6e | 74 0d 06 4a 08 2e 43 32 |raph_fon|t..J..C2|
|000011d0| 36 0d 06 54 0e 43 4d 50 | 20 52 32 2c 23 32 36 0d |6..T.CMP| R2,#26.|
|000011e0| 06 5e 0b 42 4e 45 20 43 | 33 31 0d 06 68 27 4d 4f |.^.BNE C|31..h'MO|
|000011f0| 56 20 52 34 2c 23 31 32 | 38 20 5c 67 72 61 70 68 |V R4,#12|8 \graph|
|00001200| 5f 66 6f 6e 74 20 3d 20 | 73 65 70 61 72 61 74 65 |_font = |separate|
|00001210| 64 0d 06 72 26 54 53 54 | 20 52 37 2c 23 31 20 5c |d..r&TST| R7,#1 \|
|00001220| 69 73 20 6d 6f 64 65 20 | 80 20 67 72 61 70 68 5f |is mode |. graph_|
|00001230| 6d 6f 64 65 3c 3e 30 0d | 06 7c 28 4d 4f 56 4e 45 |mode<>0.|.|(MOVNE|
|00001240| 20 52 36 2c 52 34 20 5c | 69 66 20 73 6f 20 66 6f | R6,R4 \|if so fo|
|00001250| 6e 74 20 3d 20 67 72 61 | 70 68 5f 66 6f 6e 74 0d |nt = gra|ph_font.|
|00001260| 06 86 08 2e 43 33 31 0d | 06 90 0e 43 4d 50 20 52 |....C31.|...CMP R|
|00001270| 32 2c 23 33 31 0d 06 9a | 33 42 49 43 45 51 20 52 |2,#31...|3BICEQ R|
|00001280| 37 2c 52 37 2c 23 32 20 | 5c 6d 6f 64 65 20 3d 20 |7,R7,#2 |\mode = |
|00001290| 6d 6f 64 65 20 80 20 ac | 20 28 68 6f 6c 64 5f 67 |mode . .| (hold_g|
|000012a0| 72 61 70 68 69 63 73 29 | 0d 06 a4 1b 43 4d 50 20 |raphics)|....CMP |
|000012b0| 52 32 2c 23 33 32 20 5c | 69 73 20 63 68 61 72 20 |R2,#32 \|is char |
|000012c0| 3c 33 32 0d 06 ae 1e 42 | 43 53 20 73 6b 69 70 5f |<32....B|CS skip_|
|000012d0| 69 66 20 5c 62 72 61 6e | 63 68 20 69 66 20 6e 6f |if \bran|ch if no|
|000012e0| 74 0d 06 b8 20 80 53 20 | 52 30 2c 52 32 2c 23 31 |t... .S |R0,R2,#1|
|000012f0| 35 20 5c 52 30 20 3d 20 | 63 68 61 72 20 80 20 31 |5 \R0 = |char . 1|
|00001300| 35 0d 06 c2 1f 42 45 51 | 20 73 6b 69 70 5f 69 66 |5....BEQ| skip_if|
|00001310| 20 5c 62 72 61 6e 63 68 | 20 69 66 20 52 30 3c 31 | \branch| if R0<1|
|00001320| 0d 06 cc 0d 43 4d 50 20 | 52 30 2c 23 38 0d 06 d6 |....CMP |R0,#8...|
|00001330| 1f 42 43 53 20 73 6b 69 | 70 5f 69 66 20 5c 62 72 |.BCS ski|p_if \br|
|00001340| 61 6e 63 68 20 69 66 20 | 52 30 3e 37 0d 06 e0 24 |anch if |R0>7...$|
|00001350| 80 20 52 31 31 2c 52 32 | 2c 23 37 20 5c 66 6f 72 |. R11,R2|,#7 \for|
|00001360| 65 67 72 6f 75 6e 64 3d | 63 68 61 72 20 80 20 37 |eground=|char . 7|
|00001370| 0d 06 ea 1c 4d 4f 56 20 | 52 30 2c 52 31 31 20 5c |....MOV |R0,R11 \|
|00001380| fb 20 66 6f 72 65 67 72 | 6f 75 6e 64 0d 06 f4 04 |. foregr|ound....|
|00001390| 0d 06 fe 04 0d 07 08 04 | 0d 07 12 04 0d 07 1c 04 |........|........|
|000013a0| 0d 07 26 04 0d 07 30 04 | 0d 07 3a 04 0d 07 44 04 |..&...0.|..:...D.|
|000013b0| 0d 07 4e 04 0d 07 58 0d | 42 4c 20 63 6f 6c 6f 75 |..N...X.|BL colou|
|000013c0| 72 0d 07 62 21 54 53 54 | 20 52 32 2c 23 31 36 20 |r..b!TST| R2,#16 |
|000013d0| 5c 69 73 20 63 68 61 72 | 20 80 20 31 36 20 3c 3e |\is char| . 16 <>|
|000013e0| 30 3f 0d 07 6c 2b 84 52 | 4e 45 20 52 37 2c 52 37 |0?..l+.R|NE R7,R7|
|000013f0| 2c 23 31 20 5c 6d 6f 64 | 65 20 3d 20 6d 6f 64 65 |,#1 \mod|e = mode|
|00001400| 20 84 20 67 72 61 70 68 | 5f 6d 6f 64 65 0d 07 76 | . graph|_mode..v|
|00001410| 22 4d 4f 56 4e 45 20 52 | 36 2c 52 34 20 5c 66 6f |"MOVNE R|6,R4 \fo|
|00001420| 6e 74 20 3d 20 67 72 61 | 70 68 5f 66 6f 6e 74 0d |nt = gra|ph_font.|
|00001430| 07 80 2e 42 49 43 45 51 | 20 52 37 2c 52 37 2c 23 |...BICEQ| R7,R7,#|
|00001440| 31 20 5c 6d 6f 64 65 20 | 3d 20 6d 6f 64 65 20 80 |1 \mode |= mode .|
|00001450| 20 ac 20 67 72 61 70 68 | 5f 6d 6f 64 65 0d 07 8a | . graph|_mode...|
|00001460| 22 ec 51 20 52 36 2c 23 | 30 20 5c 66 6f 6e 74 20 |".Q R6,#|0 \font |
|00001470| 3d 20 61 6c 70 68 61 6e | 75 6d 65 72 69 63 73 0d |= alphan|umerics.|
|00001480| 07 94 1c ec 51 20 52 31 | 30 2c 23 30 20 5c 68 6f |....Q R1|0,#0 \ho|
|00001490| 6c 64 5f 63 68 61 72 20 | 3d 20 30 0d 07 9e 0c 2e |ld_char |= 0.....|
|000014a0| 73 6b 69 70 5f 69 66 0d | 07 a8 17 41 44 44 20 52 |skip_if.|...ADD R|
|000014b0| 38 2c 52 38 2c 23 31 20 | 5c 58 3d 58 2b 31 0d 07 |8,R8,#1 |\X=X+1..|
|000014c0| b2 19 43 4d 50 20 52 38 | 2c 23 34 30 20 5c 69 73 |..CMP R8|,#40 \is|
|000014d0| 20 58 20 3d 20 34 30 0d | 07 bc 20 42 4e 45 20 63 | X = 40.|.. BNE c|
|000014e0| 6f 6c 75 6d 6e 73 74 61 | 72 74 20 5c 6c 6f 6f 70 |olumnsta|rt \loop|
|000014f0| 20 69 66 20 6e 6f 74 0d | 07 c6 17 41 44 44 20 52 | if not.|...ADD R|
|00001500| 39 2c 52 39 2c 23 31 20 | 5c 59 3d 59 2b 31 0d 07 |9,R9,#1 |\Y=Y+1..|
|00001510| d0 19 43 4d 50 20 52 39 | 2c 23 32 35 20 5c 69 73 |..CMP R9|,#25 \is|
|00001520| 20 59 20 3d 20 32 35 0d | 07 da 1d 42 4e 45 20 72 | Y = 25.|...BNE r|
|00001530| 6f 77 73 74 61 72 74 20 | 5c 6c 6f 6f 70 20 69 66 |owstart |\loop if|
|00001540| 20 6e 6f 74 0d 07 e4 12 | 4d 4f 56 20 52 30 2c 23 | not....|MOV R0,#|
|00001550| 31 20 5c fb 20 31 0d 07 | ee 0d 42 4c 20 63 6f 6c |1 \. 1..|..BL col|
|00001560| 6f 75 72 0d 07 f8 16 4d | 4f 56 20 52 30 2c 23 31 |our....M|OV R0,#1|
|00001570| 32 38 20 5c fb 20 31 32 | 38 0d 08 02 0d 42 4c 20 |28 \. 12|8....BL |
|00001580| 63 6f 6c 6f 75 72 0d 08 | 0c 36 41 44 52 20 52 30 |colour..|.6ADR R0|
|00001590| 2c 77 6b 73 70 61 63 65 | 20 5c 77 6b 73 70 61 63 |,wkspace| \wkspac|
|000015a0| 65 20 63 6f 6e 74 61 69 | 6e 73 20 70 61 72 61 6d |e contai|ns param|
|000015b0| 65 74 65 72 20 61 64 64 | 72 65 73 73 0d 08 16 27 |eter add|ress...'|
|000015c0| 4c 44 52 20 52 30 2c 5b | 52 30 5d 20 5c 52 30 20 |LDR R0,[|R0] \R0 |
|000015d0| 3d 20 70 61 72 61 6d 65 | 74 65 72 20 61 64 64 72 |= parame|ter addr|
|000015e0| 65 73 73 0d 08 20 1f 53 | 57 49 20 22 58 4f 53 5f |ess.. .S|WI "XOS_|
|000015f0| 43 4c 49 22 20 5c ff 28 | 70 61 72 61 6d 65 74 65 |CLI" \.(|paramete|
|00001600| 72 29 0d 08 2a 27 4d 4f | 56 56 53 20 52 31 2c 23 |r)..*'MO|VVS R1,#|
|00001610| 26 46 46 20 5c 52 31 20 | 3d 20 32 35 35 20 66 6c |&FF \R1 |= 255 fl|
|00001620| 61 67 73 20 65 72 72 6f | 72 0d 08 34 26 4d 4f 56 |ags erro|r..4&MOV|
|00001630| 56 43 20 52 31 2c 23 30 | 20 5c 52 31 20 3d 20 30 |VC R1,#0| \R1 = 0|
|00001640| 20 66 6c 61 67 73 20 6e | 6f 20 65 72 72 6f 72 0d | flags n|o error.|
|00001650| 08 3e 43 53 54 4d 46 44 | 20 52 31 33 21 2c 7b 52 |.>CSTMFD| R13!,{R|
|00001660| 30 2c 52 31 7d 20 5c 73 | 61 76 65 20 65 72 72 6f |0,R1} \s|ave erro|
|00001670| 72 20 66 6c 61 67 20 61 | 6e 64 20 52 30 20 28 65 |r flag a|nd R0 (e|
|00001680| 72 72 6f 72 20 62 6c 6f | 63 6b 20 69 66 20 61 6e |rror blo|ck if an|
|00001690| 79 29 0d 08 48 25 42 4c | 20 72 65 73 74 6f 72 65 |y)..H%BL| restore|
|000016a0| 20 5c 72 65 73 74 6f 72 | 65 20 6d 6f 64 65 20 37 | \restor|e mode 7|
|000016b0| 20 73 63 72 65 65 6e 0d | 08 52 31 42 4c 20 72 65 | screen.|.R1BL re|
|000016c0| 73 74 6f 72 65 63 68 61 | 72 20 5c 72 65 73 74 6f |storecha|r \resto|
|000016d0| 72 65 20 63 68 61 72 61 | 63 74 65 72 20 64 65 66 |re chara|cter def|
|000016e0| 69 6e 69 74 69 6f 6e 73 | 0d 08 5c 1e 41 44 52 20 |initions|..\.ADR |
|000016f0| 52 32 2c 76 61 72 61 64 | 64 20 5c 6c 6f 61 64 20 |R2,varad|d \load |
|00001700| 76 61 72 61 64 64 0d 08 | 66 2d 4c 44 52 20 52 32 |varadd..|f-LDR R2|
|00001710| 2c 5b 52 32 5d 20 5c 67 | 65 74 20 70 6f 69 6e 74 |,[R2] \g|et point|
|00001720| 65 72 20 74 6f 20 52 4d | 41 20 77 6f 72 6b 73 70 |er to RM|A worksp|
|00001730| 61 63 65 0d 08 70 24 4d | 4f 56 20 52 30 2c 23 37 |ace..p$M|OV R0,#7|
|00001740| 20 5c 72 65 6c 65 61 73 | 65 20 52 4d 41 20 77 6f | \releas|e RMA wo|
|00001750| 72 6b 73 70 61 63 65 0d | 08 7a 14 53 57 49 20 22 |rkspace.|.z.SWI "|
|00001760| 58 4f 53 5f 4d 6f 64 75 | 6c 65 22 0d 08 84 4c 4c |XOS_Modu|le"...LL|
|00001770| 44 4d 56 53 46 44 20 52 | 31 33 21 2c 7b 52 31 2c |DMVSFD R|13!,{R1,|
|00001780| 52 32 2c 50 43 7d 20 5c | 65 72 72 6f 72 20 72 65 |R2,PC} \|error re|
|00001790| 74 75 72 6e 20 69 66 20 | 63 6f 75 6c 64 6e 27 74 |turn if |couldn't|
|000017a0| 20 72 65 6c 65 61 73 65 | 2c 52 31 2c 52 32 20 73 | release|,R1,R2 s|
|000017b0| 63 72 61 70 70 65 64 0d | 08 8e 32 4c 44 4d 46 44 |crapped.|..2LDMFD|
|000017c0| 20 52 31 33 21 2c 7b 52 | 30 2c 52 31 7d 20 5c 72 | R13!,{R|0,R1} \r|
|000017d0| 65 74 72 69 65 76 65 20 | 52 30 20 61 6e 64 20 65 |etrieve |R0 and e|
|000017e0| 72 72 6f 72 20 66 6c 61 | 67 0d 08 98 24 43 4d 50 |rror fla|g...$CMP|
|000017f0| 20 52 31 2c 23 26 46 46 | 20 5c 77 61 73 20 74 68 | R1,#&FF| \was th|
|00001800| 65 72 65 20 61 6e 20 65 | 72 72 6f 72 3f 0d 08 a2 |ere an e|rror?...|
|00001810| 44 54 45 51 45 51 50 20 | 52 31 35 2c 23 31 3c 3c |DTEQEQP |R15,#1<<|
|00001820| 32 38 20 5c 69 66 20 79 | 65 73 3c 20 73 65 74 20 |28 \if y|es< set |
|00001830| 56 20 66 6c 61 67 20 28 | 52 30 20 70 6f 69 6e 74 |V flag (|R0 point|
|00001840| 73 20 74 6f 20 65 72 72 | 6f 72 20 62 6c 6f 63 6b |s to err|or block|
|00001850| 29 0d 08 ac 21 4c 44 4d | 46 44 20 52 31 33 21 2c |)...!LDM|FD R13!,|
|00001860| 7b 50 43 7d 20 5c 65 78 | 69 74 20 75 74 69 6c 69 |{PC} \ex|it utili|
|00001870| 74 79 0d 08 b6 2d 2e 67 | 72 61 70 68 69 63 5f 6d |ty...-.g|raphic_m|
|00001880| 6f 64 65 20 5c 6f 72 69 | 67 69 6e 61 6c 20 73 63 |ode \ori|ginal sc|
|00001890| 72 65 65 6e 20 6e 6f 74 | 20 6d 6f 64 65 20 37 0d |reen not| mode 7.|
|000018a0| 08 c0 28 41 44 52 20 52 | 30 2c 77 6b 73 70 61 63 |..(ADR R|0,wkspac|
|000018b0| 65 20 5c 6c 6f 61 64 20 | 77 6b 73 70 61 63 65 20 |e \load |wkspace |
|000018c0| 61 64 64 72 65 73 73 0d | 08 ca 26 4c 44 52 20 52 |address.|..&LDR R|
|000018d0| 30 2c 5b 52 30 5d 20 5c | 67 65 74 20 70 61 72 61 |0,[R0] \|get para|
|000018e0| 6d 61 74 65 72 20 61 64 | 64 72 65 73 73 0d 08 d4 |mater ad|dress...|
|000018f0| 1f 53 57 49 20 22 58 4f | 53 5f 43 4c 49 22 20 5c |.SWI "XO|S_CLI" \|
|00001900| ff 28 70 61 72 61 6d 65 | 74 65 72 29 0d 08 de 38 |.(parame|ter)...8|
|00001910| 4c 44 4d 46 44 20 52 31 | 33 21 2c 7b 50 43 7d 20 |LDMFD R1|3!,{PC} |
|00001920| 5c 65 78 69 74 20 75 74 | 69 6c 69 74 79 20 28 65 |\exit ut|ility (e|
|00001930| 72 72 6f 72 20 66 6c 61 | 67 67 65 64 20 69 66 20 |rror fla|gged if |
|00001940| 61 6e 79 29 0d 08 f2 18 | 2e 77 6b 73 70 61 63 65 |any)....|.wkspace|
|00001950| 20 45 51 55 44 30 3a 45 | 51 55 44 30 0d 08 fc 48 | EQUD0:E|QUD0...H|
|00001960| 2e 70 61 72 61 6d 65 72 | 72 20 45 51 55 44 30 3a |.paramer|r EQUD0:|
|00001970| 45 51 55 53 22 4d 69 73 | 73 69 6e 67 20 70 61 72 |EQUS"Mis|sing par|
|00001980| 61 6d 65 74 65 72 20 3c | 48 61 72 64 43 6f 70 79 |ameter <|HardCopy|
|00001990| 46 58 3e 20 65 74 63 22 | 3a 45 51 55 42 30 3a 41 |FX> etc"|:EQUB0:A|
|000019a0| 4c 49 47 4e 0d 09 06 49 | 2e 52 4d 41 65 72 72 20 |LIGN...I|.RMAerr |
|000019b0| 45 51 55 44 30 3a 45 51 | 55 53 22 4e 6f 20 72 6f |EQUD0:EQ|US"No ro|
|000019c0| 6f 6d 20 69 6e 20 52 4d | 41 22 3a 45 51 55 42 30 |om in RM|A":EQUB0|
|000019d0| 3a 41 4c 49 47 4e 20 5c | 28 65 72 72 6f 72 20 6e |:ALIGN \|(error n|
|000019e0| 6f 73 2e 20 73 65 74 20 | 74 6f 20 30 29 0d 09 10 |os. set |to 0)...|
|000019f0| 17 2e 76 61 72 61 64 64 | 20 45 51 55 44 30 3a 45 |..varadd| EQUD0:E|
|00001a00| 51 55 44 30 0d 09 1a 04 | 0d 09 24 04 0d 09 38 1d |QUD0....|..$...8.|
|00001a10| 2e 63 6f 6c 6f 75 72 20 | 5c 73 65 74 20 63 6f 6c |.colour |\set col|
|00001a20| 6f 75 72 20 69 6e 20 52 | 30 0d 09 42 1a 53 57 49 |our in R|0..B.SWI|
|00001a30| 20 4f 53 5f 57 72 69 74 | 65 49 2b 31 37 20 5c ef | OS_Writ|eI+17 \.|
|00001a40| 20 31 37 0d 09 4c 1d 53 | 57 49 20 22 4f 53 5f 57 | 17..L.S|WI "OS_W|
|00001a50| 72 69 74 65 43 22 20 5c | ef 20 63 6f 6c 6f 75 72 |riteC" \|. colour|
|00001a60| 0d 09 56 16 4d 4f 56 20 | 50 43 2c 52 31 34 20 5c |..V.MOV |PC,R14 \|
|00001a70| 72 65 74 75 72 6e 0d 09 | 6a 23 2e 64 72 61 77 20 |return..|j#.draw |
|00001a80| 5c 58 2c 59 20 49 4e 20 | 52 38 2c 52 39 2c 20 63 |\X,Y IN |R8,R9, c|
|00001a90| 68 61 72 20 69 6e 20 52 | 32 0d 09 74 14 53 54 4d |har in R|2..t.STM|
|00001aa0| 46 44 20 52 31 33 21 2c | 7b 52 31 34 7d 0d 09 7e |FD R13!,|{R14}..~|
|00001ab0| 1e 53 57 49 20 4f 53 5f | 57 72 69 74 65 49 2b 33 |.SWI OS_|WriteI+3|
|00001ac0| 31 20 5c ef 20 33 31 2c | 58 2c 59 0d 09 88 0d 4d |1 \. 31,|X,Y....M|
|00001ad0| 4f 56 20 52 30 2c 52 38 | 0d 09 92 13 53 57 49 20 |OV R0,R8|....SWI |
|00001ae0| 22 4f 53 5f 57 72 69 74 | 65 43 22 0d 09 9c 0d 4d |"OS_Writ|eC"....M|
|00001af0| 4f 56 20 52 30 2c 52 39 | 0d 09 a6 13 53 57 49 20 |OV R0,R9|....SWI |
|00001b00| 22 4f 53 5f 57 72 69 74 | 65 43 22 0d 09 b0 1c 43 |"OS_Writ|eC"....C|
|00001b10| 4d 50 20 52 32 2c 23 33 | 32 20 5c 69 73 20 63 68 |MP R2,#3|2 \is ch|
|00001b20| 61 72 20 3c 20 33 32 0d | 09 ba 23 4d 4f 56 43 43 |ar < 32.|..#MOVCC|
|00001b30| 20 52 32 2c 23 33 32 20 | 5c 69 66 20 79 65 73 2c | R2,#32 |\if yes,|
|00001b40| 20 63 68 61 72 20 3d 20 | 33 32 0d 09 c4 17 42 43 | char = |32....BC|
|00001b50| 43 20 73 6b 69 70 20 5c | 74 68 65 6e 20 73 6b 69 |C skip \|then ski|
|00001b60| 70 0d 09 ce 1d 43 4d 50 | 20 52 32 2c 23 31 32 38 |p....CMP| R2,#128|
|00001b70| 20 5c 69 73 20 63 68 61 | 72 20 31 32 38 3f 0d 09 | \is cha|r 128?..|
|00001b80| d8 20 ec 51 20 52 32 2c | 23 33 32 20 5c 69 66 20 |. .Q R2,|#32 \if |
|00001b90| 79 65 73 2c 20 63 68 61 | 72 20 3d 20 33 32 0d 09 |yes, cha|r = 32..|
|00001ba0| e2 17 42 45 51 20 73 6b | 69 70 20 5c 74 68 65 6e |..BEQ sk|ip \then|
|00001bb0| 20 73 6b 69 70 0d 09 ec | 28 54 53 54 20 52 37 2c | skip...|(TST R7,|
|00001bc0| 23 34 20 5c 64 6f 75 62 | 6c 65 2d 68 65 69 67 68 |#4 \doub|le-heigh|
|00001bd0| 74 20 80 20 6d 6f 64 65 | 20 3e 20 30 3f 0d 09 f6 |t . mode| > 0?...|
|00001be0| 48 4d 4f 56 4e 45 20 52 | 30 2c 52 32 20 5c 69 66 |HMOVNE R|0,R2 \if|
|00001bf0| 20 79 65 73 2c 20 63 68 | 61 72 20 74 6f 20 52 30 | yes, ch|ar to R0|
|00001c00| 20 74 68 65 6e 20 73 75 | 62 72 6f 75 74 69 6e 65 | then su|broutine|
|00001c10| 20 27 64 6f 75 62 6c 65 | 27 20 74 68 65 6e 20 72 | 'double|' then r|
|00001c20| 65 74 75 72 6e 0d 0a 00 | 0f 42 4c 4e 45 20 64 6f |eturn...|.BLNE do|
|00001c30| 75 62 6c 65 0d 0a 0a 15 | 4c 44 4d 4e 45 46 44 20 |uble....|LDMNEFD |
|00001c40| 52 31 33 21 2c 7b 50 43 | 7d 0d 0a 14 20 43 4d 50 |R13!,{PC|}... CMP|
|00001c50| 20 52 35 2c 23 35 20 5c | 64 6f 75 62 6c 65 5f 72 | R5,#5 \|double_r|
|00001c60| 6f 77 3d 6c 6f 77 65 72 | 3f 0d 0a 1e 20 ec 51 20 |ow=lower|?... .Q |
|00001c70| 52 32 2c 23 33 32 20 5c | 69 66 20 79 65 73 2c 20 |R2,#32 \|if yes, |
|00001c80| 63 68 61 72 20 3d 20 33 | 32 0d 0a 28 1d 43 4d 50 |char = 3|2..(.CMP|
|00001c90| 20 52 32 2c 23 31 32 37 | 20 5c 69 73 20 63 68 61 | R2,#127| \is cha|
|00001ca0| 72 20 31 32 37 3f 0d 0a | 32 3d 42 4c 45 51 20 62 |r 127?..|2=BLEQ b|
|00001cb0| 6c 6f 64 67 65 20 5c 69 | 66 20 79 65 73 2c 20 74 |lodge \i|f yes, t|
|00001cc0| 68 65 6e 20 73 75 62 72 | 6f 75 74 69 6e 65 20 27 |hen subr|outine '|
|00001cd0| 62 6c 6f 64 67 65 27 20 | 74 68 65 6e 20 72 65 74 |blodge' |then ret|
|00001ce0| 75 72 6e 0d 0a 3c 15 4c | 44 4d 45 51 46 44 20 52 |urn..<.L|DMEQFD R|
|00001cf0| 31 33 21 2c 7b 50 43 7d | 0d 0a 46 17 2e 73 6b 69 |13!,{PC}|..F..ski|
|00001d00| 70 20 5c 73 6b 69 70 20 | 72 65 65 6e 74 72 79 0d |p \skip |reentry.|
|00001d10| 0a 50 15 4d 4f 56 20 52 | 30 2c 52 32 20 5c ef 20 |.P.MOV R|0,R2 \. |
|00001d20| 63 68 61 72 0d 0a 5a 13 | 53 57 49 20 22 4f 53 5f |char..Z.|SWI "OS_|
|00001d30| 57 72 69 74 65 43 22 0d | 0a 64 1b 4c 44 4d 46 44 |WriteC".|.d.LDMFD|
|00001d40| 20 52 31 33 21 2c 7b 50 | 43 7d 20 5c 72 65 74 75 | R13!,{P|C} \retu|
|00001d50| 72 6e 0d 0a 78 25 2e 64 | 65 66 63 68 61 72 73 20 |rn..x%.d|efchars |
|00001d60| 5c 72 65 64 65 66 69 6e | 65 20 63 68 61 72 61 63 |\redefin|e charac|
|00001d70| 74 65 72 20 73 65 74 0d | 0a 82 14 53 54 4d 46 44 |ter set.|...STMFD|
|00001d80| 20 52 31 33 21 2c 7b 52 | 31 34 7d 0d 0a 8c 28 4d | R13!,{R|14}...(M|
|00001d90| 4f 56 20 52 31 2c 23 31 | 32 38 2b 33 32 20 5c 6e |OV R1,#1|28+32 \n|
|00001da0| 6f 20 74 6f 20 72 65 64 | 65 66 69 6e 65 20 69 6e |o to red|efine in|
|00001db0| 20 52 31 0d 0a 96 0c 2e | 64 65 66 6c 6f 6f 70 0d | R1.....|defloop.|
|00001dc0| 0a a0 2b 53 55 42 20 52 | 30 2c 52 31 2c 23 31 32 |..+SUB R|0,R1,#12|
|00001dd0| 38 20 5c 6e 6f 20 66 6f | 72 20 64 65 66 69 6e 69 |8 \no fo|r defini|
|00001de0| 74 69 6f 6e 20 69 6e 20 | 52 30 0d 0a aa 25 42 4c |tion in |R0...%BL|
|00001df0| 20 64 65 66 20 5c 31 32 | 38 2b 33 32 2e 2e 31 32 | def \12|8+32..12|
|00001e00| 38 2b 36 33 20 2d 2d 3e | 20 33 32 2e 2e 36 33 0d |8+63 -->| 32..63.|
|00001e10| 0a b4 11 41 44 44 20 52 | 31 2c 52 31 2c 23 36 34 |...ADD R|1,R1,#64|
|00001e20| 0d 0a be 11 41 44 44 20 | 52 30 2c 52 30 2c 23 36 |....ADD |R0,R0,#6|
|00001e30| 34 0d 0a c8 27 42 4c 20 | 64 65 66 20 5c 31 32 38 |4...'BL |def \128|
|00001e40| 2b 39 36 2e 2e 31 32 38 | 2b 31 32 37 20 2d 2d 3e |+96..128|+127 -->|
|00001e50| 20 39 36 2e 2e 31 32 37 | 0d 0a d2 11 53 55 42 20 | 96..127|....SUB |
|00001e60| 52 31 2c 52 31 2c 23 36 | 33 0d 0a dc 12 43 4d 50 |R1,R1,#6|3....CMP|
|00001e70| 20 52 31 2c 23 31 32 38 | 2b 36 34 0d 0a e6 0f 42 | R1,#128|+64....B|
|00001e80| 4e 45 20 64 65 66 6c 6f | 6f 70 0d 0a f0 30 42 4c |NE deflo|op...0BL|
|00001e90| 20 6e 6f 6e 5f 73 74 61 | 6e 64 61 72 64 20 5c 72 | non_sta|ndard \r|
|00001ea0| 65 64 65 66 69 6e 65 20 | 6e 6f 6e 5f 73 74 61 6e |edefine |non_stan|
|00001eb0| 64 61 72 64 20 63 68 61 | 72 73 0d 0a fa 13 4c 44 |dard cha|rs....LD|
|00001ec0| 4d 46 44 20 52 31 33 21 | 2c 7b 50 43 7d 0d 0b 0e |MFD R13!|,{PC}...|
|00001ed0| 05 5c 0d 0b 18 3a 5c 61 | 73 73 75 6d 69 6e 67 20 |.\...:\a|ssuming |
|00001ee0| 77 65 20 68 61 76 65 20 | 61 20 67 72 61 70 68 69 |we have |a graphi|
|00001ef0| 63 73 20 63 68 61 72 61 | 63 74 65 72 2c 20 77 65 |cs chara|cter, we|
|00001f00| 20 63 61 6e 20 61 6e 61 | 6c 79 73 65 0d 0b 22 40 | can ana|lyse.."@|
|00001f10| 5c 62 69 74 73 20 73 65 | 74 20 66 6f 72 20 65 61 |\bits se|t for ea|
|00001f20| 63 68 20 70 69 78 65 6c | 20 6f 66 20 6d 6f 64 65 |ch pixel| of mode|
|00001f30| 20 37 20 67 72 61 70 68 | 69 63 73 20 63 68 61 72 | 7 graph|ics char|
|00001f40| 20 61 73 20 66 6f 6c 6c | 6f 77 73 3b 0d 0b 2c 34 | as foll|ows;..,4|
|00001f50| 5c 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\ | |
|00001f60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001f70| 20 20 20 20 20 20 20 20 | 62 69 74 73 20 73 65 74 | |bits set|
|00001f80| 0d 0b 36 34 5c 74 6f 70 | 20 27 70 69 78 65 6c 27 |..64\top| 'pixel'|
|00001f90| 20 72 6f 77 20 6f 66 20 | 63 68 61 72 61 63 74 65 | row of |characte|
|00001fa0| 72 20 20 20 20 20 20 20 | 20 20 20 20 30 20 20 20 |r | 0 |
|00001fb0| 20 20 20 31 0d 0b 40 34 | 5c 6d 69 64 64 6c 65 20 | 1..@4|\middle |
|00001fc0| 27 70 69 78 65 6c 27 20 | 72 6f 77 20 6f 66 20 63 |'pixel' |row of c|
|00001fd0| 68 61 72 61 63 74 65 72 | 20 20 20 20 20 20 20 20 |haracter| |
|00001fe0| 32 20 20 20 20 20 20 33 | 0d 0b 4a 35 5c 62 6f 74 |2 3|..J5\bot|
|00001ff0| 74 6f 6d 20 27 70 69 78 | 65 6c 27 20 72 6f 77 20 |tom 'pix|el' row |
|00002000| 6f 66 20 63 68 61 72 61 | 63 74 65 72 20 20 20 20 |of chara|cter |
|00002010| 20 20 20 34 26 35 20 20 | 20 20 35 26 36 0d 0b 54 | 4&5 | 5&6..T|
|00002020| 48 5c 74 68 65 20 6e 65 | 77 20 64 65 66 69 6e 65 |H\the ne|w define|
|00002030| 64 20 63 68 61 72 61 63 | 74 65 72 20 75 73 65 73 |d charac|ter uses|
|00002040| 20 74 68 72 65 65 20 72 | 6f 77 73 20 6f 66 20 70 | three r|ows of p|
|00002050| 69 78 65 6c 73 20 66 6f | 72 20 74 68 65 20 74 6f |ixels fo|r the to|
|00002060| 70 20 72 6f 77 0d 0b 5e | 2e 5c 74 77 6f 20 72 6f |p row..^|.\two ro|
|00002070| 77 73 20 6f 66 20 70 69 | 78 65 6c 73 20 66 6f 72 |ws of pi|xels for|
|00002080| 20 74 68 65 20 6d 69 64 | 64 6c 65 20 72 6f 77 20 | the mid|dle row |
|00002090| 61 6e 64 0d 0b 68 2c 5c | 74 68 72 65 65 20 72 6f |and..h,\|three ro|
|000020a0| 77 73 20 6f 66 20 70 69 | 78 65 6c 73 20 66 6f 72 |ws of pi|xels for|
|000020b0| 20 74 68 65 20 62 6f 74 | 74 6f 6d 20 72 6f 77 0d | the bot|tom row.|
|000020c0| 0b 72 05 5c 0d 0b 7c 37 | 2e 64 65 66 20 5c 63 68 |.r.\..|7|.def \ch|
|000020d0| 61 72 20 69 6e 20 52 30 | 2c 20 63 6f 64 65 20 69 |ar in R0|, code i|
|000020e0| 6e 20 52 31 2c 20 52 34 | 3d 6c 65 66 74 20 41 4c |n R1, R4|=left AL|
|000020f0| 4c 20 52 45 47 53 20 a8 | 41 43 54 0d 0b 86 1a 53 |L REGS .|ACT....S|
|00002100| 54 4d 46 44 20 52 31 33 | 21 2c 7b 52 30 2d 52 36 |TMFD R13|!,{R0-R6|
|00002110| 2c 52 31 34 7d 0d 0b 90 | 29 4d 4f 56 20 52 34 2c |,R14}...|)MOV R4,|
|00002120| 23 26 46 30 20 5c 6d 61 | 73 6b 20 66 6f 72 20 6c |#&F0 \ma|sk for l|
|00002130| 65 66 74 20 68 61 6e 64 | 20 70 69 78 65 6c 0d 0b |eft hand| pixel..|
|00002140| 9a 34 41 44 52 20 52 32 | 2c 63 20 5c 61 64 64 72 |.4ADR R2|,c \addr|
|00002150| 65 73 73 20 6f 66 20 63 | 68 61 72 61 63 74 65 72 |ess of c|haracter|
|00002160| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 62 75 66 66 | definit|ion buff|
|00002170| 65 72 0d 0b a4 25 4d 4f | 56 20 52 36 2c 23 30 20 |er...%MO|V R6,#0 |
|00002180| 5c 69 6e 69 74 69 61 6c | 69 73 65 20 62 75 66 66 |\initial|ise buff|
|00002190| 65 72 20 74 6f 20 30 0d | 0b ae 1e 53 54 52 20 52 |er to 0.|...STR R|
|000021a0| 36 2c 5b 52 32 5d 20 5c | 66 69 72 73 74 20 34 20 |6,[R2] \|first 4 |
|000021b0| 62 79 74 65 73 0d 0b b8 | 25 53 54 52 20 52 36 2c |bytes...|%STR R6,|
|000021c0| 5b 52 32 2c 23 34 5d 20 | 5c 73 65 63 6f 6e 64 20 |[R2,#4] |\second |
|000021d0| 66 6f 75 72 20 62 79 74 | 65 73 0d 0b c2 24 54 53 |four byt|es...$TS|
|000021e0| 54 20 52 30 2c 23 31 20 | 5c 69 73 20 62 69 74 20 |T R0,#1 |\is bit |
|000021f0| 30 20 6f 66 20 63 68 61 | 72 20 3d 20 31 3f 0d 0b |0 of cha|r = 1?..|
|00002200| cc 3e 53 54 52 4e 45 42 | 20 52 34 2c 5b 52 32 5d |.>STRNEB| R4,[R2]|
|00002210| 20 5c 69 66 20 73 6f 20 | 73 65 74 20 66 69 72 73 | \if so |set firs|
|00002220| 74 20 74 68 72 65 65 20 | 62 79 74 65 73 20 6f 66 |t three |bytes of|
|00002230| 20 64 65 66 6e 20 74 6f | 20 26 46 30 0d 0b d6 15 | defn to| &F0....|
|00002240| 53 54 52 4e 45 42 20 52 | 34 2c 5b 52 32 2c 23 31 |STRNEB R|4,[R2,#1|
|00002250| 5d 0d 0b e0 15 53 54 52 | 4e 45 42 20 52 34 2c 5b |]....STR|NEB R4,[|
|00002260| 52 32 2c 23 32 5d 0d 0b | ea 24 54 53 54 20 52 30 |R2,#2]..|.$TST R0|
|00002270| 2c 23 32 20 5c 69 73 20 | 62 69 74 20 31 20 6f 66 |,#2 \is |bit 1 of|
|00002280| 20 63 68 61 72 20 3d 20 | 31 3f 0d 0b f4 39 4c 44 | char = |1?...9LD|
|00002290| 52 4e 45 20 52 36 2c 5b | 52 32 5d 20 5c 69 66 20 |RNE R6,[|R2] \if |
|000022a0| 73 6f 20 72 65 74 72 69 | 65 76 65 20 66 69 72 73 |so retri|eve firs|
|000022b0| 74 20 34 20 62 79 74 65 | 73 20 74 6f 20 52 36 20 |t 4 byte|s to R6 |
|000022c0| 61 6e 64 0d 0b fe 3e 84 | 52 4e 45 20 52 36 2c 52 |and...>.|RNE R6,R|
|000022d0| 36 2c 23 26 30 30 30 30 | 30 46 20 5c 73 65 74 72 |6,#&0000|0F \setr|
|000022e0| 69 67 68 74 20 68 61 6e | 64 20 6e 69 62 62 6c 65 |ight han|d nibble|
|000022f0| 20 6f 66 20 66 69 72 73 | 74 20 33 20 62 79 74 65 | of firs|t 3 byte|
|00002300| 73 0d 0c 08 1e 84 52 4e | 45 20 52 36 2c 52 36 2c |s.....RN|E R6,R6,|
|00002310| 23 26 30 30 30 46 30 30 | 20 5c 74 6f 20 26 46 0d |#&000F00| \to &F.|
|00002320| 0c 12 17 84 52 4e 45 20 | 52 36 2c 52 36 2c 23 26 |....RNE |R6,R6,#&|
|00002330| 30 46 30 30 30 30 0d 0c | 1c 36 53 54 52 4e 45 20 |0F0000..|.6STRNE |
|00002340| 52 36 2c 5b 52 32 5d 20 | 5c 73 74 6f 72 65 20 62 |R6,[R2] |\store b|
|00002350| 61 63 6b 20 6d 6f 64 69 | 66 69 65 64 20 62 79 74 |ack modi|fied byt|
|00002360| 65 73 20 74 6f 20 62 75 | 66 66 65 72 0d 0c 26 24 |es to bu|ffer..&$|
|00002370| 54 53 54 20 52 30 2c 23 | 34 20 5c 69 73 20 62 69 |TST R0,#|4 \is bi|
|00002380| 74 20 32 20 6f 66 20 63 | 68 61 72 20 3d 20 31 3f |t 2 of c|har = 1?|
|00002390| 0d 0c 30 41 53 54 52 4e | 45 42 20 52 34 2c 5b 52 |..0ASTRN|EB R4,[R|
|000023a0| 32 2c 23 33 5d 20 5c 69 | 66 20 73 6f 20 73 65 74 |2,#3] \i|f so set|
|000023b0| 20 34 74 68 20 61 6e 64 | 20 35 74 68 20 62 79 74 | 4th and| 5th byt|
|000023c0| 65 73 20 6f 66 20 64 65 | 66 6e 20 74 6f 20 26 46 |es of de|fn to &F|
|000023d0| 30 0d 0c 3a 15 53 54 52 | 4e 45 42 20 52 34 2c 5b |0..:.STR|NEB R4,[|
|000023e0| 52 32 2c 23 34 5d 0d 0c | 44 24 54 53 54 20 52 30 |R2,#4]..|D$TST R0|
|000023f0| 2c 23 38 20 5c 69 73 20 | 62 69 74 20 33 20 6f 66 |,#8 \is |bit 3 of|
|00002400| 20 63 68 61 72 20 3d 20 | 31 3f 0d 0c 4e 3c 4c 44 | char = |1?..N<LD|
|00002410| 52 4e 45 42 20 52 36 2c | 5b 52 32 2c 23 33 5d 20 |RNEB R6,|[R2,#3] |
|00002420| 5c 69 66 20 73 6f 20 72 | 65 74 72 69 65 76 65 20 |\if so r|etrieve |
|00002430| 34 74 68 20 62 79 74 65 | 20 66 6f 20 64 65 66 69 |4th byte| fo defi|
|00002440| 6e 69 74 69 6f 6e 0d 0c | 58 2f 84 52 4e 45 20 52 |nition..|X/.RNE R|
|00002450| 36 2c 52 36 2c 23 26 46 | 20 5c 73 65 74 20 72 69 |6,R6,#&F| \set ri|
|00002460| 67 68 74 20 68 61 6e 64 | 20 6e 69 62 62 6c 65 20 |ght hand| nibble |
|00002470| 74 6f 20 26 46 0d 0c 62 | 23 53 54 52 4e 45 42 20 |to &F..b|#STRNEB |
|00002480| 52 36 2c 5b 52 32 2c 23 | 33 5d 20 5c 72 65 73 74 |R6,[R2,#|3] \rest|
|00002490| 6f 72 65 20 62 79 74 65 | 0d 0c 6c 2b 4c 44 52 4e |ore byte|..l+LDRN|
|000024a0| 45 42 20 52 36 2c 5b 52 | 32 2c 23 34 5d 20 5c 72 |EB R6,[R|2,#4] \r|
|000024b0| 65 70 65 61 74 20 77 69 | 74 68 20 35 74 68 20 62 |epeat wi|th 5th b|
|000024c0| 79 74 65 0d 0c 76 12 84 | 52 4e 45 20 52 36 2c 52 |yte..v..|RNE R6,R|
|000024d0| 36 2c 23 26 46 0d 0c 80 | 15 53 54 52 4e 45 42 20 |6,#&F...|.STRNEB |
|000024e0| 52 36 2c 5b 52 32 2c 23 | 34 5d 0d 0c 8a 38 42 49 |R6,[R2,#|4]...8BI|
|000024f0| 43 53 20 52 36 2c 52 30 | 2c 23 25 31 31 30 30 31 |CS R6,R0|,#%11001|
|00002500| 31 31 31 20 5c 6d 61 73 | 6b 20 6f 66 66 20 62 69 |111 \mas|k off bi|
|00002510| 74 73 20 34 20 61 6e 64 | 20 35 20 6f 66 20 63 68 |ts 4 and| 5 of ch|
|00002520| 61 72 0d 0c 94 31 43 4d | 50 20 52 36 2c 23 25 30 |ar...1CM|P R6,#%0|
|00002530| 30 31 31 30 30 30 30 20 | 5c 61 72 65 20 62 69 74 |0110000 |\are bit|
|00002540| 73 20 34 20 61 6e 64 20 | 35 20 62 6f 74 68 20 3d |s 4 and |5 both =|
|00002550| 20 31 3f 0d 0c 9e 46 53 | 54 52 45 51 42 20 52 34 | 1?...FS|TREQB R4|
|00002560| 2c 5b 52 32 2c 23 35 5d | 20 5c 69 66 20 73 6f 2c |,[R2,#5]| \if so,|
|00002570| 20 73 65 74 20 36 74 68 | 2c 20 37 74 68 20 61 6e | set 6th|, 7th an|
|00002580| 64 20 38 74 68 20 62 79 | 74 65 73 20 66 6f 20 64 |d 8th by|tes fo d|
|00002590| 65 66 6e 20 b8 20 26 46 | 30 0d 0c a8 15 53 54 52 |efn . &F|0....STR|
|000025a0| 45 51 42 20 52 34 2c 5b | 52 32 2c 23 36 5d 0d 0c |EQB R4,[|R2,#6]..|
|000025b0| b2 15 53 54 52 45 51 42 | 20 52 34 2c 5b 52 32 2c |..STREQB| R4,[R2,|
|000025c0| 23 37 5d 0d 0c bc 38 42 | 49 43 53 20 52 36 2c 52 |#7]...8B|ICS R6,R|
|000025d0| 30 2c 23 25 31 30 30 31 | 31 31 31 31 20 5c 6d 61 |0,#%1001|1111 \ma|
|000025e0| 73 6b 20 6f 66 66 20 62 | 69 74 73 20 36 20 61 6e |sk off b|its 6 an|
|000025f0| 64 20 37 20 6f 66 20 63 | 68 61 72 0d 0c c6 30 43 |d 7 of c|har...0C|
|00002600| 4d 50 20 52 36 2c 23 25 | 30 31 31 30 30 30 30 30 |MP R6,#%|01100000|
|00002610| 20 5c 61 72 65 20 62 69 | 74 73 20 36 20 61 6e 64 | \are bi|ts 6 and|
|00002620| 20 37 20 62 6f 74 68 20 | 3d 31 3f 0d 0c d0 3d 4c | 7 both |=1?...=L|
|00002630| 44 52 45 51 20 52 36 2c | 5b 52 32 2c 23 34 5d 20 |DREQ R6,|[R2,#4] |
|00002640| 5c 69 66 20 73 6f 20 72 | 65 74 72 69 65 76 65 20 |\if so r|etrieve |
|00002650| 35 74 68 20 74 6f 20 38 | 74 68 20 62 79 74 65 73 |5th to 8|th bytes|
|00002660| 20 6f 66 20 64 65 66 6e | 0d 0c da 42 84 52 45 51 | of defn|...B.REQ|
|00002670| 20 52 36 2c 52 36 2c 23 | 26 30 30 30 30 46 30 30 | R6,R6,#|&0000F00|
|00002680| 20 5c 73 65 74 20 72 69 | 67 68 74 20 68 61 6e 64 | \set ri|ght hand|
|00002690| 20 6e 69 62 62 6c 65 20 | 6f 66 20 62 79 74 65 73 | nibble |of bytes|
|000026a0| 20 36 2d 38 20 74 6f 20 | 26 46 0d 0c e4 18 84 52 | 6-8 to |&F.....R|
|000026b0| 45 51 20 52 36 2c 52 36 | 2c 23 26 30 30 46 30 30 |EQ R6,R6|,#&00F00|
|000026c0| 30 30 0d 0c ee 18 84 52 | 45 51 20 52 36 2c 52 36 |00.....R|EQ R6,R6|
|000026d0| 2c 23 26 46 30 30 30 30 | 30 30 0d 0c f8 2c 53 54 |,#&F0000|00...,ST|
|000026e0| 52 45 51 20 52 36 2c 5b | 52 32 2c 23 34 5d 20 5c |REQ R6,[|R2,#4] \|
|000026f0| 72 65 73 74 6f 72 65 20 | 6d 6f 64 69 66 69 65 64 |restore |modified|
|00002700| 20 62 79 74 65 73 0d 0d | 02 34 53 57 49 20 4f 53 | bytes..|.4SWI OS|
|00002710| 5f 57 72 69 74 65 49 2b | 32 33 20 5c 6e 6f 77 20 |_WriteI+|23 \now |
|00002720| 64 65 66 69 6e 65 20 6e | 65 77 20 63 68 61 72 61 |define n|ew chara|
|00002730| 63 74 65 72 3b 20 ef 20 | 32 33 0d 0d 0c 38 53 55 |cter; . |23...8SU|
|00002740| 42 20 52 30 2c 52 31 2c | 23 33 32 20 5c ef 20 63 |B R0,R1,|#32 \. c|
|00002750| 6f 64 65 2d 33 32 20 28 | 63 6f 6e 74 69 75 67 75 |ode-32 (|contiugu|
|00002760| 6f 75 73 20 67 72 61 70 | 68 69 63 73 20 63 68 61 |ous grap|hics cha|
|00002770| 72 29 0d 0d 16 13 53 57 | 49 20 22 4f 53 5f 57 72 |r)....SW|I "OS_Wr|
|00002780| 69 74 65 43 22 0d 0d 20 | 1e 4d 4f 56 20 52 35 2c |iteC".. |.MOV R5,|
|00002790| 52 31 20 5c 73 61 76 65 | 20 63 6f 64 65 20 69 6e |R1 \save| code in|
|000027a0| 20 52 35 0d 0d 2a 20 4d | 4f 56 20 52 30 2c 52 32 | R5..* M|OV R0,R2|
|000027b0| 20 5c 63 6f 64 65 20 62 | 75 66 66 65 72 20 74 6f | \code b|uffer to|
|000027c0| 20 52 30 0d 0d 34 1f 4d | 4f 56 20 52 31 2c 23 38 | R0..4.M|OV R1,#8|
|000027d0| 20 5c 38 20 62 79 74 65 | 73 20 74 6f 20 77 72 69 | \8 byte|s to wri|
|000027e0| 74 65 0d 0d 3e 22 53 57 | 49 20 22 4f 53 5f 57 72 |te..>"SW|I "OS_Wr|
|000027f0| 69 74 65 4e 22 20 5c ef | 20 74 68 65 20 38 20 62 |iteN" \.| the 8 b|
|00002800| 79 74 65 73 0d 0d 48 3e | 4d 4f 56 20 52 30 2c 23 |ytes..H>|MOV R0,#|
|00002810| 26 37 37 20 5c 6d 61 6b | 65 20 75 70 20 76 65 72 |&77 \mak|e up ver|
|00002820| 74 69 63 61 6c 20 6d 61 | 73 6b 20 66 6f 72 20 73 |tical ma|sk for s|
|00002830| 65 70 61 72 61 74 65 64 | 20 63 68 61 72 61 63 74 |eparated| charact|
|00002840| 65 72 0d 0d 52 13 84 52 | 20 52 30 2c 52 30 2c 23 |er..R..R| R0,R0,#|
|00002850| 26 37 37 30 30 0d 0d 5c | 17 84 52 20 52 30 2c 52 |&7700..\|..R R0,R|
|00002860| 30 2c 23 26 37 37 30 30 | 30 30 30 30 0d 0d 66 2d |0,#&7700|0000..f-|
|00002870| 4d 4f 56 20 52 34 2c 52 | 30 2c 41 53 4c 23 38 20 |MOV R4,R|0,ASL#8 |
|00002880| 5c 6f 74 68 65 72 20 68 | 61 6c 66 20 6f 66 20 6d |\other h|alf of m|
|00002890| 61 73 6b 20 74 6f 20 52 | 34 0d 0d 70 30 4c 44 52 |ask to R|4..p0LDR|
|000028a0| 20 52 36 2c 5b 52 32 5d | 20 5c 67 65 74 20 66 69 | R6,[R2]| \get fi|
|000028b0| 72 73 74 20 34 20 62 79 | 74 65 73 20 6f 66 20 64 |rst 4 by|tes of d|
|000028c0| 65 66 69 6e 69 74 69 6f | 6e 0d 0d 7a 21 80 20 52 |efinitio|n..z!. R|
|000028d0| 30 2c 52 30 2c 52 36 20 | 5c 80 20 73 65 70 61 72 |0,R0,R6 |\. separ|
|000028e0| 61 74 69 6f 6e 20 6d 61 | 73 6b 0d 0d 84 2a 53 54 |ation ma|sk...*ST|
|000028f0| 52 20 52 30 2c 5b 52 32 | 5d 20 5c 73 74 6f 72 65 |R R0,[R2|] \store|
|00002900| 20 62 61 63 6b 20 6d 6f | 64 69 66 69 65 64 20 62 | back mo|dified b|
|00002910| 79 74 65 73 0d 0d 8e 2d | 4c 44 52 20 52 36 2c 5b |ytes...-|LDR R6,[|
|00002920| 52 32 2c 23 34 5d 20 5c | 72 65 70 65 61 74 20 66 |R2,#4] \|repeat f|
|00002930| 6f 72 20 73 65 63 6f 6e | 64 20 34 20 62 79 74 65 |or secon|d 4 byte|
|00002940| 73 0d 0d 98 1c 80 20 52 | 30 2c 52 34 2c 52 36 20 |s..... R|0,R4,R6 |
|00002950| 5c 80 20 6d 61 73 6b 20 | 69 6e 20 52 34 0d 0d a2 |\. mask |in R4...|
|00002960| 24 53 54 52 20 52 30 2c | 5b 52 32 2c 23 34 5d 20 |$STR R0,|[R2,#4] |
|00002970| 5c 73 74 6f 72 65 20 62 | 61 63 6b 20 62 79 74 65 |\store b|ack byte|
|00002980| 73 0d 0d ac 35 53 57 49 | 20 4f 53 5f 57 72 69 74 |s...5SWI| OS_Writ|
|00002990| 65 49 2b 32 33 20 5c 6e | 6f 77 20 64 65 66 69 6e |eI+23 \n|ow defin|
|000029a0| 65 20 73 65 70 61 72 61 | 74 65 64 20 63 68 61 72 |e separa|ted char|
|000029b0| 3b 20 ef 20 32 33 0d 0d | b6 21 4d 4f 56 20 52 30 |; . 23..|.!MOV R0|
|000029c0| 2c 52 35 20 5c 67 65 74 | 20 62 61 63 6b 20 63 68 |,R5 \get| back ch|
|000029d0| 61 72 20 63 6f 64 65 0d | 0d c0 1b 53 57 49 20 22 |ar code.|...SWI "|
|000029e0| 4f 53 5f 57 72 69 74 65 | 43 22 20 5c ef 20 63 6f |OS_Write|C" \. co|
|000029f0| 64 65 0d 0d ca 20 4d 4f | 56 20 52 30 2c 52 32 20 |de... MO|V R0,R2 |
|00002a00| 5c 63 68 61 72 20 62 75 | 66 66 65 72 20 74 6f 20 |\char bu|ffer to |
|00002a10| 52 30 0d 0d d4 1f 4d 4f | 56 20 52 31 2c 23 38 20 |R0....MO|V R1,#8 |
|00002a20| 5c 38 20 62 79 74 65 73 | 20 74 6f 20 77 72 69 74 |\8 bytes| to writ|
|00002a30| 65 0d 0d de 22 53 57 49 | 20 22 4f 53 5f 57 72 69 |e..."SWI| "OS_Wri|
|00002a40| 74 65 4e 22 20 5c ef 20 | 74 68 65 20 38 20 62 79 |teN" \. |the 8 by|
|00002a50| 74 65 73 0d 0d e8 30 4c | 44 4d 46 44 20 52 31 33 |tes...0L|DMFD R13|
|00002a60| 21 2c 7b 52 30 2d 52 36 | 2c 50 43 7d 20 5c 72 65 |!,{R0-R6|,PC} \re|
|00002a70| 73 74 6f 72 65 20 72 65 | 67 73 20 61 6e 64 20 65 |store re|gs and e|
|00002a80| 78 69 74 0d 0d fc 12 2e | 63 20 45 51 55 44 30 3a |xit.....|c EQUD0:|
|00002a90| 45 51 55 44 30 0d 0e 10 | 11 2e 6e 6f 6e 5f 73 74 |EQUD0...|..non_st|
|00002aa0| 61 6e 64 61 72 64 0d 0e | 1a 31 53 54 4d 46 44 20 |andard..|.1STMFD |
|00002ab0| 52 31 33 21 2c 7b 52 33 | 2c 52 31 34 7d 20 5c 73 |R13!,{R3|,R14} \s|
|00002ac0| 61 76 65 20 52 33 20 26 | 20 72 65 74 75 72 6e 20 |ave R3 &| return |
|00002ad0| 61 64 64 72 65 73 73 0d | 0e 24 34 41 44 52 20 52 |address.|.$4ADR R|
|00002ae0| 31 2c 6e 73 64 61 74 61 | 20 5c 52 31 20 70 6f 69 |1,nsdata| \R1 poi|
|00002af0| 6e 74 73 20 74 6f 20 63 | 68 61 72 20 64 65 66 6e |nts to c|har defn|
|00002b00| 20 64 61 74 61 20 73 74 | 61 72 74 0d 0e 2e 36 41 | data st|art...6A|
|00002b10| 44 52 20 52 33 2c 6e 73 | 64 61 74 61 65 6e 64 20 |DR R3,ns|dataend |
|00002b20| 5c 52 32 20 20 70 6f 69 | 6e 74 73 20 74 6f 20 63 |\R2 poi|nts to c|
|00002b30| 68 61 72 20 64 65 66 6e | 20 64 61 74 61 20 65 6e |har defn| data en|
|00002b40| 64 0d 0e 38 0b 2e 6e 73 | 6c 6f 6f 70 0d 0e 42 33 |d..8..ns|loop..B3|
|00002b50| 4c 44 52 42 20 52 30 2c | 5b 52 31 5d 2c 23 31 20 |LDRB R0,|[R1],#1 |
|00002b60| 5c 67 65 74 20 6e 65 78 | 74 20 64 61 74 61 20 62 |\get nex|t data b|
|00002b70| 79 74 65 20 74 68 65 6e | 20 69 6e 63 20 52 31 0d |yte then| inc R1.|
|00002b80| 0e 4c 20 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |.L SWI "|OS_Write|
|00002b90| 43 22 20 5c ef 20 64 61 | 74 61 20 62 79 74 65 0d |C" \. da|ta byte.|
|00002ba0| 0e 56 19 43 4d 50 20 52 | 31 2c 52 33 20 5c 6c 61 |.V.CMP R|1,R3 \la|
|00002bb0| 73 74 20 62 79 74 65 3f | 0d 0e 60 1b 42 4e 45 20 |st byte?|..`.BNE |
|00002bc0| 6e 73 6c 6f 6f 70 20 5c | 6c 6f 6f 70 20 69 66 20 |nsloop \|loop if |
|00002bd0| 6e 6f 74 0d 0e 6a 29 4c | 44 4d 46 44 20 52 31 33 |not..j)L|DMFD R13|
|00002be0| 21 2c 7b 52 33 2c 50 43 | 7d 20 5c 72 65 73 74 6f |!,{R3,PC|} \resto|
|00002bf0| 72 65 20 52 33 20 26 20 | 65 78 69 74 0d 0e 7e 0b |re R3 & |exit..~.|
|00002c00| 2e 6e 73 64 61 74 61 0d | 0e 88 3b 45 51 55 57 26 |.nsdata.|..;EQUW&|
|00002c10| 32 33 31 37 3a 45 51 55 | 44 26 37 43 33 30 33 36 |2317:EQU|D&7C3036|
|00002c20| 31 43 3a 45 51 55 44 26 | 30 30 37 45 33 30 33 30 |1C:EQUD&|007E3030|
|00002c30| 20 5c 20 50 6f 75 6e 64 | 20 73 69 67 6e 20 5b 33 | \ Pound| sign [3|
|00002c40| 35 5d 0d 0e 92 3b 45 51 | 55 57 26 32 37 31 37 3a |5]...;EQ|UW&2717:|
|00002c50| 45 51 55 44 26 30 30 31 | 38 31 38 31 38 3a 45 51 |EQUD&001|81818:EQ|
|00002c60| 55 44 26 30 20 20 20 20 | 20 20 20 20 5c 20 74 69 |UD&0 | \ ti|
|00002c70| 63 6b 20 20 20 20 20 20 | 20 5b 33 39 5d 0d 0e 9c |ck | [39]...|
|00002c80| 3b 45 51 55 57 26 32 41 | 31 37 3a 45 51 55 44 26 |;EQUW&2A|17:EQUD&|
|00002c90| 31 43 32 41 30 38 30 30 | 3a 45 51 55 44 26 30 30 |1C2A0800|:EQUD&00|
|00002ca0| 30 38 32 41 31 43 20 5c | 20 73 74 61 72 20 20 20 |082A1C \| star |
|00002cb0| 20 20 20 20 5b 34 32 5d | 0d 0e a6 3b 45 51 55 57 | [42]|...;EQUW|
|00002cc0| 26 33 30 31 37 3a 45 51 | 55 44 26 36 36 36 36 33 |&3017:EQ|UD&66663|
|00002cd0| 43 31 38 3a 45 51 55 44 | 26 30 30 31 38 33 43 36 |C18:EQUD|&00183C6|
|00002ce0| 36 20 5c 20 7a 65 72 6f | 20 20 20 20 20 20 20 5b |6 \ zero| [|
|00002cf0| 34 38 5d 0d 0e b0 3b 45 | 51 55 57 26 35 42 31 37 |48]...;E|QUW&5B17|
|00002d00| 3a 45 51 55 44 26 46 45 | 36 30 33 30 30 30 3a 45 |:EQUD&FE|603000:E|
|00002d10| 51 55 44 26 30 30 33 30 | 36 30 46 45 20 5c 20 3c |QUD&0030|60FE \ <|
|00002d20| 2d 20 20 20 20 20 20 20 | 20 20 5b 39 31 5d 0d 0e |- | [91]..|
|00002d30| ba 3b 45 51 55 57 26 35 | 43 31 37 3a 45 51 55 44 |.;EQUW&5|C17:EQUD|
|00002d40| 26 36 45 36 30 36 30 36 | 30 3a 45 51 55 44 26 30 |&6E60606|0:EQUD&0|
|00002d50| 46 30 43 30 36 30 33 20 | 5c 20 31 2f 32 20 20 20 |F0C0603 |\ 1/2 |
|00002d60| 20 20 20 20 20 5b 39 32 | 5d 0d 0e c4 3b 45 51 55 | [92|]...;EQU|
|00002d70| 57 26 35 44 31 37 3a 45 | 51 55 44 26 37 46 30 36 |W&5D17:E|QUD&7F06|
|00002d80| 30 43 30 30 3a 45 51 55 | 44 26 30 30 30 43 30 36 |0C00:EQU|D&000C06|
|00002d90| 37 46 20 5c 20 2d 3e 20 | 20 20 20 20 20 20 20 20 |7F \ -> | |
|00002da0| 5b 39 33 5d 0d 0e ce 3b | 45 51 55 57 26 35 45 31 |[93]...;|EQUW&5E1|
|00002db0| 37 3a 45 51 55 44 26 35 | 41 37 45 33 43 31 38 3a |7:EQUD&5|A7E3C18:|
|00002dc0| 45 51 55 44 26 30 30 31 | 38 31 38 31 38 20 5c 20 |EQUD&001|81818 \ |
|00002dd0| 75 70 2d 61 72 72 6f 77 | 20 20 20 5b 39 34 5d 0d |up-arrow| [94].|
|00002de0| 0e d8 3b 45 51 55 57 26 | 35 46 31 37 3a 45 51 55 |..;EQUW&|5F17:EQU|
|00002df0| 44 26 33 36 37 46 33 36 | 33 36 3a 45 51 55 44 26 |D&367F36|36:EQUD&|
|00002e00| 30 30 33 36 33 36 37 46 | 20 5c 20 68 61 73 68 20 |0036367F| \ hash |
|00002e10| 20 20 20 20 20 20 5b 39 | 35 5d 0d 0e e2 3b 45 51 | [9|5]...;EQ|
|00002e20| 55 57 26 36 30 31 37 3a | 45 51 55 44 26 46 46 30 |UW&6017:|EQUD&FF0|
|00002e30| 30 30 30 30 30 3a 45 51 | 55 44 26 30 20 20 20 20 |00000:EQ|UD&0 |
|00002e40| 20 20 20 20 5c 20 75 6e | 64 65 72 6c 69 6e 65 20 | \ un|derline |
|00002e50| 20 5b 39 36 5d 0d 0e ec | 3c 45 51 55 57 26 37 42 | [96]...|<EQUW&7B|
|00002e60| 31 37 3a 45 51 55 44 26 | 33 32 33 30 33 30 33 30 |17:EQUD&|32303030|
|00002e70| 3a 45 51 55 44 26 30 32 | 30 46 30 41 30 36 20 5c |:EQUD&02|0F0A06 \|
|00002e80| 20 31 2f 34 20 20 20 20 | 20 20 20 20 5b 31 32 33 | 1/4 | [123|
|00002e90| 5d 0d 0e f6 3c 45 51 55 | 57 26 37 43 31 37 3a 45 |]...<EQU|W&7C17:E|
|00002ea0| 51 55 44 26 33 36 33 36 | 33 36 33 36 3a 45 51 55 |QUD&3636|3636:EQU|
|00002eb0| 44 26 30 30 33 36 33 36 | 33 36 20 5c 20 7c 7c 20 |D&003636|36 \ || |
|00002ec0| 20 20 20 20 20 20 20 20 | 5b 31 32 34 5d 0d 0f 00 | |[124]...|
|00002ed0| 3c 45 51 55 57 26 37 44 | 31 37 3a 45 51 55 44 26 |<EQUW&7D|17:EQUD&|
|00002ee0| 31 39 37 30 31 38 37 30 | 3a 45 51 55 44 26 30 31 |19701870|:EQUD&01|
|00002ef0| 30 37 30 35 37 33 20 5c | 20 33 2f 34 20 20 20 20 |070573 \| 3/4 |
|00002f00| 20 20 20 20 5b 31 32 35 | 5d 0d 0f 0a 3c 45 51 55 | [125|]...<EQU|
|00002f10| 57 26 37 45 31 37 3a 45 | 51 55 44 26 37 45 30 30 |W&7E17:E|QUD&7E00|
|00002f20| 31 38 30 30 3a 45 51 55 | 44 26 30 30 30 30 31 38 |1800:EQU|D&000018|
|00002f30| 30 30 20 5c 20 64 69 76 | 69 64 65 20 20 20 20 20 |00 \ div|ide |
|00002f40| 5b 31 32 36 5d 0d 0f 14 | 3c 45 51 55 57 26 37 46 |[126]...|<EQUW&7F|
|00002f50| 31 37 3a 45 51 55 44 26 | 37 46 37 46 37 46 30 30 |17:EQUD&|7F7F7F00|
|00002f60| 3a 45 51 55 44 26 30 30 | 37 46 37 46 37 46 20 5c |:EQUD&00|7F7F7F \|
|00002f70| 20 62 6c 6f 64 67 65 20 | 20 20 20 20 5b 31 32 37 | blodge | [127|
|00002f80| 5d 0d 0f 1e 0e 2e 6e 73 | 64 61 74 61 65 6e 64 0d |].....ns|dataend.|
|00002f90| 0f 28 09 41 4c 49 47 4e | 0d 0f 3c 09 2e 73 61 76 |.(.ALIGN|..<..sav|
|00002fa0| 65 0d 0f 46 37 53 54 4d | 46 44 20 52 31 33 21 2c |e..F7STM|FD R13!,|
|00002fb0| 7b 52 38 2d 52 31 30 2c | 52 31 34 7d 20 5c 73 61 |{R8-R10,|R14} \sa|
|00002fc0| 76 65 20 72 65 67 73 20 | 26 20 72 65 74 75 72 6e |ve regs |& return|
|00002fd0| 20 61 64 64 72 65 73 73 | 0d 0f 50 1a 4d 4f 56 20 | address|..P.MOV |
|00002fe0| 52 38 2c 23 30 20 5c 58 | 20 63 6f 6f 72 64 20 3d |R8,#0 \X| coord =|
|00002ff0| 20 30 0d 0f 5a 1a 4d 4f | 56 20 52 39 2c 23 30 20 | 0..Z.MO|V R9,#0 |
|00003000| 5c 59 20 63 6f 6f 72 64 | 20 3d 20 30 0d 0f 64 21 |\Y coord| = 0..d!|
|00003010| 41 44 52 20 52 31 30 2c | 76 61 72 61 64 64 20 5c |ADR R10,|varadd \|
|00003020| 76 61 72 61 64 64 20 74 | 6f 20 52 31 30 0d 0f 6e |varadd t|o R10..n|
|00003030| 30 4c 44 52 20 52 31 30 | 2c 5b 52 31 30 5d 20 5c |0LDR R10|,[R10] \|
|00003040| 70 6f 69 6e 74 65 72 20 | 74 6f 20 73 61 76 65 64 |pointer |to saved|
|00003050| 20 73 63 72 65 65 6e 20 | 73 74 61 72 74 0d 0f 78 | screen |start..x|
|00003060| 08 2e 6e 78 74 0d 0f 82 | 22 42 4c 20 67 65 74 78 |..nxt...|"BL getx|
|00003070| 79 20 5c 67 65 74 20 63 | 68 61 72 20 63 6f 64 65 |y \get c|har code|
|00003080| 20 61 74 20 58 2c 59 0d | 0f 8c 36 53 54 52 42 20 | at X,Y.|..6STRB |
|00003090| 52 31 2c 5b 52 31 30 5d | 2c 23 31 20 5c 73 61 76 |R1,[R10]|,#1 \sav|
|000030a0| 65 20 63 6f 64 65 20 61 | 6e 64 20 69 6e 63 20 70 |e code a|nd inc p|
|000030b0| 6f 69 6e 74 65 72 20 69 | 6e 20 52 31 30 0d 0f 96 |ointer i|n R10...|
|000030c0| 1b 41 44 44 20 52 38 2c | 52 38 2c 23 31 20 5c 58 |.ADD R8,|R8,#1 \X|
|000030d0| 20 3d 20 58 20 2b 20 31 | 0d 0f a0 1a 43 4d 50 20 | = X + 1|....CMP |
|000030e0| 52 38 2c 23 34 30 20 5c | 69 73 20 58 20 3d 20 34 |R8,#40 \|is X = 4|
|000030f0| 30 3f 0d 0f aa 1d 42 43 | 43 20 6e 78 74 20 5c 62 |0?....BC|C nxt \b|
|00003100| 72 61 6e 63 68 20 69 66 | 20 58 20 3c 20 34 30 0d |ranch if| X < 40.|
|00003110| 0f b4 14 4d 4f 56 20 52 | 38 2c 23 30 20 5c 58 20 |...MOV R|8,#0 \X |
|00003120| 3d 20 30 0d 0f be 1b 41 | 44 44 20 52 39 2c 52 39 |= 0....A|DD R9,R9|
|00003130| 2c 23 31 20 5c 59 20 3d | 20 59 20 2b 20 31 0d 0f |,#1 \Y =| Y + 1..|
|00003140| c8 1a 43 4d 50 20 52 39 | 2c 23 32 35 20 5c 69 73 |..CMP R9|,#25 \is|
|00003150| 20 59 20 3d 20 32 35 3f | 0d 0f d2 1d 42 43 43 20 | Y = 25?|....BCC |
|00003160| 6e 78 74 20 5c 62 72 61 | 6e 63 68 20 69 66 20 59 |nxt \bra|nch if Y|
|00003170| 20 3c 20 32 35 0d 0f dc | 2f 4c 44 4d 46 44 20 52 | < 25...|/LDMFD R|
|00003180| 31 33 21 2c 7b 52 38 2d | 52 31 30 2c 50 43 7d 20 |13!,{R8-|R10,PC} |
|00003190| 5c 72 65 73 74 6f 72 65 | 20 72 65 67 73 20 26 20 |\restore| regs & |
|000031a0| 65 78 69 74 0d 0f f0 0a | 2e 67 65 74 78 79 0d 0f |exit....|.getxy..|
|000031b0| fa 24 4d 4f 56 20 52 30 | 2c 23 33 31 3a 53 57 49 |.$MOV R0|,#31:SWI|
|000031c0| 20 22 4f 53 5f 57 72 69 | 74 65 43 22 20 5c ef 20 | "OS_Wri|teC" \. |
|000031d0| 33 31 0d 10 04 22 4d 4f | 56 20 52 30 2c 52 38 3a |31..."MO|V R0,R8:|
|000031e0| 53 57 49 20 22 4f 53 5f | 57 72 69 74 65 43 22 20 |SWI "OS_|WriteC" |
|000031f0| 5c ef 20 58 0d 10 0e 33 | 4d 4f 56 20 52 30 2c 52 |\. X...3|MOV R0,R|
|00003200| 39 3a 53 57 49 20 22 4f | 53 5f 57 72 69 74 65 43 |9:SWI "O|S_WriteC|
|00003210| 22 20 5c ef 20 59 20 69 | 65 20 63 75 72 73 6f 72 |" \. Y i|e cursor|
|00003220| 20 74 6f 20 58 2c 59 0d | 10 18 47 4d 4f 56 20 52 | to X,Y.|..GMOV R|
|00003230| 30 2c 23 31 33 35 3a 53 | 57 49 20 22 4f 53 5f 42 |0,#135:S|WI "OS_B|
|00003240| 79 74 65 22 20 5c 72 65 | 61 64 20 63 68 61 72 61 |yte" \re|ad chara|
|00003250| 63 74 65 72 20 61 74 20 | 58 2c 59 20 28 6f 73 62 |cter at |X,Y (osb|
|00003260| 79 74 65 20 31 33 35 29 | 20 74 6f 20 52 31 0d 10 |yte 135)| to R1..|
|00003270| 22 16 4d 4f 56 20 50 43 | 2c 52 31 34 20 5c 72 65 |".MOV PC|,R14 \re|
|00003280| 74 75 72 6e 0d 10 36 0c | 2e 72 65 73 74 6f 72 65 |turn..6.|.restore|
|00003290| 0d 10 40 39 53 54 4d 46 | 44 20 52 31 33 21 2c 7b |..@9STMF|D R13!,{|
|000032a0| 52 38 2c 52 31 30 2c 52 | 31 34 7d 20 5c 73 61 76 |R8,R10,R|14} \sav|
|000032b0| 65 20 52 38 2c 52 31 30 | 20 26 20 72 65 74 75 72 |e R8,R10| & retur|
|000032c0| 6e 20 61 64 64 72 65 73 | 73 0d 10 4a 32 53 57 49 |n addres|s..J2SWI|
|000032d0| 20 22 4f 53 5f 57 72 69 | 74 65 53 22 20 5c eb 20 | "OS_Wri|teS" \. |
|000032e0| 37 20 28 61 6c 73 6f 20 | 73 65 74 73 20 63 75 72 |7 (also |sets cur|
|000032f0| 73 6f 72 20 74 6f 20 30 | 2c 30 29 0d 10 54 1c 45 |sor to 0|,0)..T.E|
|00003300| 51 55 42 32 32 3a 45 51 | 55 42 37 3a 45 51 55 42 |QUB22:EQ|UB7:EQUB|
|00003310| 30 3a 41 4c 49 47 4e 0d | 10 5e 24 4d 4f 56 20 52 |0:ALIGN.|.^$MOV R|
|00003320| 38 2c 23 31 30 30 30 20 | 5c 73 65 74 20 63 6f 75 |8,#1000 |\set cou|
|00003330| 6e 74 65 72 20 74 6f 20 | 39 39 39 0d 10 68 10 53 |nter to |999..h.S|
|00003340| 55 42 20 52 38 2c 52 38 | 2c 23 31 0d 10 72 21 41 |UB R8,R8|,#1..r!A|
|00003350| 44 52 20 52 31 30 2c 76 | 61 72 61 64 64 20 5c 76 |DR R10,v|aradd \v|
|00003360| 61 72 61 64 64 20 74 6f | 20 52 31 30 0d 10 7c 30 |aradd to| R10..|0|
|00003370| 4c 44 52 20 52 31 30 2c | 5b 52 31 30 5d 20 5c 70 |LDR R10,|[R10] \p|
|00003380| 6f 69 6e 74 65 72 20 74 | 6f 20 73 63 72 65 65 6e |ointer t|o screen|
|00003390| 20 64 61 74 61 20 74 6f | 20 52 31 30 0d 10 86 08 | data to| R10....|
|000033a0| 2e 6e 78 74 0d 10 90 42 | 4c 44 52 42 20 52 30 2c |.nxt...B|LDRB R0,|
|000033b0| 5b 52 31 30 5d 2c 23 31 | 20 5c 67 65 74 20 6e 65 |[R10],#1| \get ne|
|000033c0| 78 74 20 73 63 72 65 65 | 6e 20 62 79 74 65 20 74 |xt scree|n byte t|
|000033d0| 68 65 6e 20 69 6e 63 20 | 70 6f 69 6e 74 65 72 20 |hen inc |pointer |
|000033e0| 69 6e 20 52 31 30 0d 10 | 9a 22 53 57 49 20 22 4f |in R10..|."SWI "O|
|000033f0| 53 5f 57 72 69 74 65 43 | 22 20 5c ef 20 73 63 72 |S_WriteC|" \. scr|
|00003400| 65 65 6e 20 62 79 74 65 | 0d 10 a4 24 53 55 42 53 |een byte|...$SUBS|
|00003410| 20 52 38 2c 52 38 2c 23 | 31 20 5c 64 65 63 72 65 | R8,R8,#|1 \decre|
|00003420| 6d 65 6e 74 20 63 6f 75 | 6e 74 65 72 0d 10 ae 24 |ment cou|nter...$|
|00003430| 42 4e 45 20 6e 78 74 20 | 5c 67 6f 20 62 61 63 6b |BNE nxt |\go back|
|00003440| 20 69 66 20 6e 6f 74 20 | 66 69 6e 69 73 68 65 64 | if not |finished|
|00003450| 0d 10 b8 2f 4c 44 4d 46 | 44 20 52 31 33 21 2c 7b |.../LDMF|D R13!,{|
|00003460| 52 38 2c 52 31 30 2c 50 | 43 7d 20 5c 72 65 73 74 |R8,R10,P|C} \rest|
|00003470| 6f 72 65 20 72 65 67 73 | 20 26 20 65 78 69 74 0d |ore regs| & exit.|
|00003480| 10 cc 3e 2e 67 65 74 64 | 65 66 20 5c 52 30 20 63 |..>.getd|ef \R0 c|
|00003490| 6f 6e 74 61 69 6e 73 20 | 63 68 61 72 2c 20 6f 6e |ontains |char, on|
|000034a0| 20 65 78 69 74 20 52 31 | 20 70 6f 69 6e 74 73 20 | exit R1| points |
|000034b0| 74 6f 20 64 65 66 6e 20 | 62 6c 6f 63 6b 0d 10 d6 |to defn |block...|
|000034c0| 14 53 54 4d 46 44 20 52 | 31 33 21 2c 7b 52 31 34 |.STMFD R|13!,{R14|
|000034d0| 7d 0d 10 e0 2c 41 44 52 | 20 52 31 2c 64 65 66 6e |}...,ADR| R1,defn|
|000034e0| 20 5c 61 64 64 72 65 73 | 73 20 6f 66 20 64 65 66 | \addres|s of def|
|000034f0| 6e 20 62 6c 6f 63 6b 20 | 74 6f 20 52 31 0d 10 ea |n block |to R1...|
|00003500| 48 53 54 52 42 20 52 30 | 2c 5b 52 31 2c 23 33 5d |HSTRB R0|,[R1,#3]|
|00003510| 21 20 5c 70 75 74 20 63 | 6f 64 65 20 69 6e 20 64 |! \put c|ode in d|
|00003520| 65 66 6e 2b 33 20 26 20 | 61 64 64 20 33 20 74 6f |efn+3 & |add 3 to|
|00003530| 20 52 31 20 73 6f 20 74 | 68 61 74 20 72 65 73 75 | R1 so t|hat resu|
|00003540| 6c 74 69 6e 67 0d 10 f4 | 3f 4d 4f 56 20 52 30 2c |lting...|?MOV R0,|
|00003550| 23 31 30 20 5c 64 65 66 | 6e 20 61 66 74 65 72 20 |#10 \def|n after |
|00003560| 4f 53 5f 57 6f 72 64 20 | 31 30 20 69 73 20 77 6f |OS_Word |10 is wo|
|00003570| 72 64 20 61 6c 69 67 6e | 65 64 20 61 74 20 64 65 |rd align|ed at de|
|00003580| 66 6e 2b 34 0d 10 fe 46 | 53 57 49 20 22 4f 53 5f |fn+4...F|SWI "OS_|
|00003590| 57 6f 72 64 22 20 5c 4f | 73 5f 57 6f 72 64 20 31 |Word" \O|s_Word 1|
|000035a0| 30 3b 20 72 65 61 64 20 | 63 68 61 72 20 64 65 66 |0; read |char def|
|000035b0| 6e 20 64 61 74 61 20 62 | 6c 6f 63 6b 20 61 64 64 |n data b|lock add|
|000035c0| 72 65 73 73 20 69 6e 20 | 52 31 0d 11 08 1b 4c 44 |ress in |R1....LD|
|000035d0| 4d 46 44 20 52 31 33 21 | 2c 7b 50 43 7d 20 5c 72 |MFD R13!|,{PC} \r|
|000035e0| 65 74 75 72 6e 0d 11 1c | 4c 2e 64 6f 75 62 6c 65 |eturn...|L.double|
|000035f0| 20 5c 52 30 20 63 68 61 | 72 2c 20 52 35 20 64 6f | \R0 cha|r, R5 do|
|00003600| 75 62 6c 65 5f 72 6f 77 | 20 3d 20 65 69 74 68 65 |uble_row| = eithe|
|00003610| 72 20 31 20 75 70 70 65 | 72 20 6f 72 20 35 20 6c |r 1 uppe|r or 5 l|
|00003620| 6f 77 65 72 20 68 61 6c | 66 20 6f 66 20 63 68 61 |ower hal|f of cha|
|00003630| 72 0d 11 26 36 53 54 4d | 46 44 20 52 31 33 21 2c |r..&6STM|FD R13!,|
|00003640| 7b 52 32 2c 52 35 2c 52 | 31 34 7d 20 5c 73 61 76 |{R2,R5,R|14} \sav|
|00003650| 65 20 72 65 67 73 20 26 | 20 72 65 74 75 72 6e 20 |e regs &| return |
|00003660| 61 64 64 72 65 73 73 0d | 11 30 45 42 4c 20 67 65 |address.|.0EBL ge|
|00003670| 74 64 65 66 20 5c 67 65 | 74 20 63 68 61 72 20 64 |tdef \ge|t char d|
|00003680| 65 66 69 6e 69 74 69 6f | 6e 20 74 6f 20 64 65 66 |efinitio|n to def|
|00003690| 6e 20 2b 20 34 3b 20 52 | 31 20 70 6f 69 6e 74 73 |n + 4; R|1 points|
|000036a0| 20 61 74 20 64 65 66 6e | 20 2b 20 33 0d 11 3a 1a | at defn| + 3..:.|
|000036b0| 53 57 49 20 4f 53 5f 57 | 72 69 74 65 49 2b 32 33 |SWI OS_W|riteI+23|
|000036c0| 20 5c ef 20 32 33 0d 11 | 44 41 53 57 49 20 4f 53 | \. 23..|DASWI OS|
|000036d0| 5f 57 72 69 74 65 49 2b | 31 32 38 20 5c ef 20 31 |_WriteI+|128 \. 1|
|000036e0| 32 38 3b 20 64 65 66 69 | 6e 65 20 64 6f 75 62 6c |28; defi|ne doubl|
|000036f0| 65 20 68 65 69 67 68 74 | 20 63 68 61 72 20 61 73 |e height| char as|
|00003700| 20 6e 6f 20 31 32 38 0d | 11 4e 1f 4d 4f 56 20 52 | no 128.|.N.MOV R|
|00003710| 32 2c 23 34 20 5c 6c 6f | 6f 70 20 63 6f 75 6e 74 |2,#4 \lo|op count|
|00003720| 65 72 20 3d 20 34 0d 11 | 58 0c 2e 6e 78 64 69 67 |er = 4..|X..nxdig|
|00003730| 69 74 0d 11 62 30 4c 44 | 52 42 20 52 30 2c 5b 52 |it..b0LD|RB R0,[R|
|00003740| 31 2c 52 35 5d 20 5c 67 | 65 74 20 6e 65 78 74 20 |1,R5] \g|et next |
|00003750| 62 79 74 65 20 6f 66 20 | 64 65 66 69 6e 69 74 69 |byte of |definiti|
|00003760| 6f 6e 0d 11 6c 1b 53 57 | 49 20 22 4f 53 5f 57 72 |on..l.SW|I "OS_Wr|
|00003770| 69 74 65 43 22 20 5c ef | 20 62 79 74 65 0d 11 76 |iteC" \.| byte..v|
|00003780| 40 4c 44 52 42 20 52 30 | 2c 5b 52 31 2c 52 35 5d |@LDRB R0|,[R1,R5]|
|00003790| 20 5c ef 20 73 61 6d 65 | 20 62 79 74 65 20 61 67 | \. same| byte ag|
|000037a0| 61 69 6e 3b 20 74 68 69 | 73 20 67 69 76 65 73 20 |ain; thi|s gives |
|000037b0| 64 6f 75 62 6c 65 20 68 | 65 69 67 68 74 0d 11 80 |double h|eight...|
|000037c0| 13 53 57 49 20 22 4f 53 | 5f 57 72 69 74 65 43 22 |.SWI "OS|_WriteC"|
|000037d0| 0d 11 8a 21 41 44 44 20 | 52 35 2c 52 35 2c 23 31 |...!ADD |R5,R5,#1|
|000037e0| 20 5c 69 6e 63 20 62 79 | 74 65 20 6f 66 66 73 65 | \inc by|te offse|
|000037f0| 74 0d 11 94 23 53 55 42 | 53 20 52 32 2c 52 32 2c |t...#SUB|S R2,R2,|
|00003800| 23 31 20 5c 64 65 63 20 | 6c 6f 6f 70 20 63 6f 75 |#1 \dec |loop cou|
|00003810| 6e 74 65 72 0d 11 9e 2a | 42 4e 45 20 6e 78 64 69 |nter...*|BNE nxdi|
|00003820| 67 69 74 20 5c 69 66 20 | 6e 6f 74 20 66 69 6e 69 |git \if |not fini|
|00003830| 73 68 65 64 20 6c 6f 6f | 70 20 62 61 63 6b 0d 11 |shed loo|p back..|
|00003840| a8 3f 53 57 49 20 4f 53 | 5f 57 72 69 74 65 49 2b |.?SWI OS|_WriteI+|
|00003850| 31 32 38 20 5c ef 20 31 | 32 38 20 69 65 20 68 61 |128 \. 1|28 ie ha|
|00003860| 6c 66 20 6f 66 20 64 6f | 75 62 6c 65 20 68 65 69 |lf of do|uble hei|
|00003870| 67 68 74 20 63 68 61 72 | 61 63 74 65 72 0d 11 b2 |ght char|acter...|
|00003880| 4b 4c 44 4d 46 44 20 52 | 31 33 21 2c 7b 52 32 2c |KLDMFD R|13!,{R2,|
|00003890| 52 35 2c 50 43 7d 5e 20 | 5c 72 65 73 74 6f 72 65 |R5,PC}^ |\restore|
|000038a0| 20 72 65 67 73 3b 20 66 | 6c 61 67 73 20 70 72 65 | regs; f|lags pre|
|000038b0| 73 65 72 76 65 64 20 61 | 63 72 6f 73 73 20 73 75 |served a|cross su|
|000038c0| 62 72 6f 75 74 69 6e 65 | 0d 11 c6 0d 2e 73 61 76 |broutine|.....sav|
|000038d0| 65 63 68 61 72 0d 11 d0 | 36 53 54 4d 46 44 20 52 |echar...|6STMFD R|
|000038e0| 31 33 21 2c 7b 52 36 2c | 52 37 2c 52 31 34 7d 20 |13!,{R6,|R7,R14} |
|000038f0| 5c 73 61 76 65 20 72 65 | 67 73 20 26 20 72 65 74 |\save re|gs & ret|
|00003900| 75 72 6e 20 61 64 64 72 | 65 73 73 0d 11 da 25 4d |urn addr|ess...%M|
|00003910| 4f 56 20 52 37 2c 23 33 | 32 20 5c 73 74 61 72 74 |OV R7,#3|2 \start|
|00003920| 20 63 68 61 72 20 3d 20 | 33 32 20 74 6f 20 52 37 | char = |32 to R7|
|00003930| 0d 11 e4 1f 41 44 52 20 | 52 36 2c 76 61 72 61 64 |....ADR |R6,varad|
|00003940| 64 20 5c 76 61 72 61 64 | 64 20 74 6f 20 52 36 0d |d \varad|d to R6.|
|00003950| 11 ee 2c 4c 44 52 20 52 | 36 2c 5b 52 36 5d 20 5c |..,LDR R|6,[R6] \|
|00003960| 70 6f 69 6e 74 65 72 20 | 74 6f 20 73 63 72 65 65 |pointer |to scree|
|00003970| 6e 64 61 74 61 20 74 6f | 20 52 36 0d 11 f8 49 41 |ndata to| R6...IA|
|00003980| 44 44 20 52 36 2c 52 36 | 2c 23 26 34 30 30 20 5c |DD R6,R6|,#&400 \|
|00003990| 63 68 73 61 76 65 20 5c | 61 64 64 20 26 34 30 30 |chsave \|add &400|
|000039a0| 20 74 6f 20 67 65 74 20 | 73 74 61 72 74 20 6f 66 | to get |start of|
|000039b0| 20 63 68 61 72 61 63 74 | 65 72 20 73 61 76 65 20 | charact|er save |
|000039c0| 61 72 65 61 0d 12 02 0b | 2e 6e 78 63 68 61 72 0d |area....|.nxchar.|
|000039d0| 12 0c 1e 4d 4f 56 20 52 | 30 2c 52 37 20 5c 63 68 |...MOV R|0,R7 \ch|
|000039e0| 61 72 20 63 6f 64 65 20 | 74 6f 20 52 30 0d 12 16 |ar code |to R0...|
|000039f0| 47 42 4c 20 67 65 74 64 | 65 66 20 5c 67 65 74 20 |GBL getd|ef \get |
|00003a00| 63 68 61 72 20 64 65 66 | 69 6e 69 74 69 6f 6e 20 |char def|inition |
|00003a10| 74 6f 20 27 64 65 66 6e | 2b 34 27 3b 20 52 31 20 |to 'defn|+4'; R1 |
|00003a20| 70 6f 69 6e 74 73 20 74 | 6f 20 27 64 65 66 6e 20 |points t|o 'defn |
|00003a30| 2b 20 33 27 0d 12 20 47 | 4c 44 52 20 52 30 2c 5b |+ 3'.. G|LDR R0,[|
|00003a40| 52 31 2c 23 31 5d 20 5c | 54 68 69 73 20 49 53 20 |R1,#1] \|This IS |
|00003a50| 77 6f 72 64 20 61 6c 69 | 67 6e 65 64 21 3b 20 67 |word ali|gned!; g|
|00003a60| 65 74 20 66 69 72 73 74 | 20 66 6f 75 72 20 62 79 |et first| four by|
|00003a70| 74 65 73 20 6f 66 20 64 | 65 66 6e 0d 12 2a 43 53 |tes of d|efn..*CS|
|00003a80| 54 52 20 52 30 2c 5b 52 | 36 5d 2c 23 34 20 5c 73 |TR R0,[R|6],#4 \s|
|00003a90| 74 6f 72 65 20 69 6e 20 | 73 61 76 65 20 61 72 65 |tore in |save are|
|00003aa0| 61 20 61 6e 64 20 73 61 | 76 65 20 61 64 64 72 65 |a and sa|ve addre|
|00003ab0| 73 73 20 6f 66 66 73 65 | 74 20 62 79 20 34 0d 12 |ss offse|t by 4..|
|00003ac0| 34 4b 4c 44 52 20 52 30 | 2c 5b 52 31 2c 23 35 5d |4KLDR R0|,[R1,#5]|
|00003ad0| 20 5c 41 6c 73 6f 20 77 | 6f 72 64 20 61 6c 69 67 | \Also w|ord alig|
|00003ae0| 6e 65 64 21 3b 20 67 65 | 74 20 73 65 63 6f 6e 64 |ned!; ge|t second|
|00003af0| 20 66 6f 75 72 20 62 79 | 74 65 73 20 6f 66 20 64 | four by|tes of d|
|00003b00| 65 66 69 6e 69 74 69 6f | 6e 0d 12 3e 3f 53 54 52 |efinitio|n..>?STR|
|00003b10| 20 52 30 2c 5b 52 36 5d | 2c 23 34 20 5c 73 61 76 | R0,[R6]|,#4 \sav|
|00003b20| 65 20 74 68 65 6d 2c 20 | 61 6e 64 20 69 6e 63 20 |e them, |and inc |
|00003b30| 73 61 76 65 20 61 64 64 | 72 65 73 73 20 6f 66 66 |save add|ress off|
|00003b40| 73 65 74 20 62 79 20 34 | 0d 12 48 21 41 44 44 20 |set by 4|..H!ADD |
|00003b50| 52 37 2c 52 37 2c 23 31 | 20 5c 69 6e 63 20 63 68 |R7,R7,#1| \inc ch|
|00003b60| 61 72 20 6e 75 6d 62 65 | 72 0d 12 52 22 43 4d 50 |ar numbe|r..R"CMP|
|00003b70| 20 52 37 2c 23 32 35 36 | 20 5c 72 65 61 63 68 65 | R7,#256| \reache|
|00003b80| 64 20 63 68 61 72 20 32 | 35 36 3f 0d 12 5c 22 42 |d char 2|56?..\"B|
|00003b90| 4e 45 20 6e 78 63 68 61 | 72 20 5c 62 72 61 6e 63 |NE nxcha|r \branc|
|00003ba0| 68 20 62 61 63 6b 20 69 | 66 20 6e 6f 74 0d 12 66 |h back i|f not..f|
|00003bb0| 2e 4c 44 4d 46 44 20 52 | 31 33 21 2c 7b 52 36 2c |.LDMFD R|13!,{R6,|
|00003bc0| 52 37 2c 50 43 7d 20 5c | 72 65 73 74 6f 72 65 20 |R7,PC} \|restore |
|00003bd0| 72 65 67 73 20 26 20 65 | 78 69 74 0d 12 7a 10 2e |regs & e|xit..z..|
|00003be0| 72 65 73 74 6f 72 65 63 | 68 61 72 0d 12 84 36 53 |restorec|har...6S|
|00003bf0| 54 4d 46 44 20 52 31 33 | 21 2c 7b 52 36 2c 52 37 |TMFD R13|!,{R6,R7|
|00003c00| 2c 52 31 34 7d 20 5c 73 | 61 76 65 20 72 65 67 73 |,R14} \s|ave regs|
|00003c10| 20 26 20 72 65 74 75 72 | 6e 20 61 64 64 72 65 73 | & retur|n addres|
|00003c20| 73 0d 12 8e 25 4d 4f 56 | 20 52 37 2c 23 33 32 20 |s...%MOV| R7,#32 |
|00003c30| 5c 73 74 61 72 74 20 63 | 68 61 72 20 3d 20 33 32 |\start c|har = 32|
|00003c40| 20 74 6f 20 52 37 0d 12 | 98 1f 41 44 52 20 52 36 | to R7..|..ADR R6|
|00003c50| 2c 76 61 72 61 64 64 20 | 5c 76 61 72 61 64 64 20 |,varadd |\varadd |
|00003c60| 74 6f 20 52 36 0d 12 a2 | 2d 4c 44 52 20 52 36 2c |to R6...|-LDR R6,|
|00003c70| 5b 52 36 5d 20 5c 70 6f | 69 6e 74 65 72 20 74 6f |[R6] \po|inter to|
|00003c80| 20 73 63 72 65 65 6e 20 | 64 61 74 61 20 74 6f 20 | screen |data to |
|00003c90| 52 36 0d 12 ac 49 41 44 | 44 20 52 36 2c 52 36 2c |R6...IAD|D R6,R6,|
|00003ca0| 23 26 34 30 30 20 5c 63 | 68 73 61 76 65 20 5c 61 |#&400 \c|hsave \a|
|00003cb0| 64 64 20 26 34 30 30 20 | 74 6f 20 67 65 74 20 73 |dd &400 |to get s|
|00003cc0| 74 61 72 74 20 6f 66 20 | 63 68 61 72 61 63 74 65 |tart of |characte|
|00003cd0| 72 20 73 61 76 65 20 61 | 72 65 61 0d 12 b6 0c 2e |r save a|rea.....|
|00003ce0| 72 65 73 74 6e 78 74 0d | 12 c0 29 41 44 52 20 52 |restnxt.|..)ADR R|
|00003cf0| 31 2c 64 65 66 6e 20 5c | 52 31 20 3d 20 64 65 66 |1,defn \|R1 = def|
|00003d00| 6e 20 62 75 66 66 65 72 | 20 61 64 64 72 65 73 73 |n buffer| address|
|00003d10| 0d 12 ca 47 53 54 52 42 | 20 52 37 2c 5b 52 31 2c |...GSTRB| R7,[R1,|
|00003d20| 23 33 5d 21 20 5c 73 74 | 6f 72 65 20 63 68 61 72 |#3]! \st|ore char|
|00003d30| 20 63 6f 64 65 20 61 74 | 20 64 65 66 6e 2b 33 2c | code at| defn+3,|
|00003d40| 20 74 68 65 6e 20 73 65 | 74 20 52 31 20 3d 20 64 | then se|t R1 = d|
|00003d50| 65 66 6e 20 2b 20 33 0d | 12 d4 47 4c 44 52 20 52 |efn + 3.|..GLDR R|
|00003d60| 30 2c 5b 52 36 5d 2c 23 | 34 20 5c 67 65 74 20 66 |0,[R6],#|4 \get f|
|00003d70| 69 72 73 74 20 66 6f 75 | 72 20 73 61 76 65 64 20 |irst fou|r saved |
|00003d80| 62 79 74 65 73 3b 20 69 | 6e 63 20 61 64 64 72 65 |bytes; i|nc addre|
|00003d90| 73 73 20 6f 66 66 73 65 | 74 20 62 79 20 34 0d 12 |ss offse|t by 4..|
|00003da0| de 4a 53 54 52 20 52 30 | 2c 5b 52 31 2c 23 31 5d |.JSTR R0|,[R1,#1]|
|00003db0| 20 5c 54 68 69 73 20 49 | 53 20 77 6f 72 64 20 61 | \This I|S word a|
|00003dc0| 6c 69 67 6e 65 64 21 3b | 20 73 74 6f 72 65 20 62 |ligned!;| store b|
|00003dd0| 79 74 65 73 20 69 6e 20 | 64 65 66 6e 2b 34 20 74 |ytes in |defn+4 t|
|00003de0| 6f 20 64 65 66 6e 2b 37 | 0d 12 e8 48 4c 44 52 20 |o defn+7|...HLDR |
|00003df0| 52 30 2c 5b 52 36 5d 2c | 23 34 20 5c 67 65 74 20 |R0,[R6],|#4 \get |
|00003e00| 73 65 63 6f 6e 64 20 66 | 6f 75 72 20 73 61 76 65 |second f|our save|
|00003e10| 64 20 62 79 74 65 73 3b | 20 69 6e 63 20 61 64 64 |d bytes;| inc add|
|00003e20| 72 65 73 73 20 6f 66 66 | 73 65 74 20 62 79 20 34 |ress off|set by 4|
|00003e30| 0d 12 f2 4b 53 54 52 20 | 52 30 2c 5b 52 31 2c 23 |...KSTR |R0,[R1,#|
|00003e40| 35 5d 20 5c 54 68 69 73 | 20 49 53 20 77 6f 72 64 |5] \This| IS word|
|00003e50| 20 61 6c 69 67 6e 65 64 | 21 3b 20 73 74 6f 72 65 | aligned|!; store|
|00003e60| 20 62 79 74 65 73 20 69 | 6e 20 64 65 66 6e 2b 38 | bytes i|n defn+8|
|00003e70| 20 74 6f 20 64 65 66 6e | 2b 31 31 0d 12 fc 14 4d | to defn|+11....M|
|00003e80| 4f 56 20 52 30 2c 23 32 | 33 20 5c ef 20 32 33 0d |OV R0,#2|3 \. 23.|
|00003e90| 13 06 13 53 57 49 20 22 | 4f 53 5f 57 72 69 74 65 |...SWI "|OS_Write|
|00003ea0| 43 22 0d 13 10 4b 4d 4f | 56 20 52 30 2c 52 31 20 |C"...KMO|V R0,R1 |
|00003eb0| 5c 52 30 20 70 6f 69 6e | 74 73 20 74 6f 20 64 65 |\R0 poin|ts to de|
|00003ec0| 66 6e 2b 33 20 69 65 20 | 63 68 61 72 20 63 6f 64 |fn+3 ie |char cod|
|00003ed0| 65 20 66 6f 6c 6c 6f 77 | 65 64 20 62 79 20 38 20 |e follow|ed by 8 |
|00003ee0| 62 79 74 65 73 20 6f 66 | 20 64 65 66 6e 0d 13 1a |bytes of| defn...|
|00003ef0| 30 4d 4f 56 20 52 31 2c | 23 39 20 5c 52 31 20 3d |0MOV R1,|#9 \R1 =|
|00003f00| 20 39 3b 20 6e 75 6d 62 | 65 72 20 6f 66 20 62 79 | 9; numb|er of by|
|00003f10| 74 65 73 20 74 6f 20 6f | 75 74 70 75 74 0d 13 24 |tes to o|utput..$|
|00003f20| 2a 53 57 49 20 22 4f 53 | 5f 57 72 69 74 65 4e 22 |*SWI "OS|_WriteN"|
|00003f30| 20 5c ef 20 62 79 74 65 | 73 20 6f 66 20 64 65 66 | \. byte|s of def|
|00003f40| 69 6e 69 74 69 6f 6e 0d | 13 2e 24 41 44 44 20 52 |inition.|..$ADD R|
|00003f50| 37 2c 52 37 2c 23 31 20 | 5c 61 64 64 20 31 20 74 |7,R7,#1 |\add 1 t|
|00003f60| 6f 20 63 68 61 72 20 63 | 6f 64 65 0d 13 38 22 43 |o char c|ode..8"C|
|00003f70| 4d 50 20 52 37 2c 23 32 | 35 36 20 5c 72 65 61 63 |MP R7,#2|56 \reac|
|00003f80| 68 65 64 20 63 68 61 72 | 20 32 35 36 3f 0d 13 42 |hed char| 256?..B|
|00003f90| 1f 42 4e 45 20 72 65 73 | 74 6e 78 74 20 5c 6e 6f |.BNE res|tnxt \no|
|00003fa0| 20 62 72 61 6e 63 68 20 | 62 61 63 6b 0d 13 4c 2b | branch |back..L+|
|00003fb0| 4c 44 4d 46 44 20 52 31 | 33 21 2c 7b 52 36 2c 52 |LDMFD R1|3!,{R6,R|
|00003fc0| 37 2c 50 43 7d 20 5c 73 | 61 76 65 20 72 65 67 73 |7,PC} \s|ave regs|
|00003fd0| 20 26 20 65 78 69 74 0d | 13 60 48 2e 62 6c 6f 64 | & exit.|.`H.blod|
|00003fe0| 67 65 20 5c 64 65 66 69 | 6e 69 74 69 6f 6e 20 66 |ge \defi|nition f|
|00003ff0| 6f 72 20 6d 6f 64 65 20 | 37 20 63 68 61 72 20 31 |or mode |7 char 1|
|00004000| 32 37 3b 20 64 65 66 69 | 6e 65 20 61 73 20 63 68 |27; defi|ne as ch|
|00004010| 61 72 20 31 32 38 20 26 | 20 6f 75 74 70 75 74 0d |ar 128 &| output.|
|00004020| 13 6a 14 53 54 4d 46 44 | 20 52 31 33 21 2c 7b 52 |.j.STMFD| R13!,{R|
|00004030| 31 34 7d 0d 13 74 31 41 | 44 52 20 52 30 2c 62 6c |14}..t1A|DR R0,bl|
|00004040| 63 68 61 72 20 5c 61 64 | 64 72 65 73 73 20 6f 66 |char \ad|dress of|
|00004050| 20 64 61 74 61 20 66 6f | 72 20 64 65 66 69 6e 69 | data fo|r defini|
|00004060| 74 69 6f 6e 0d 13 7e 29 | 4d 4f 56 20 52 31 2c 23 |tion..~)|MOV R1,#|
|00004070| 31 31 20 5c 6e 75 6d 62 | 65 72 20 6f 66 20 62 79 |11 \numb|er of by|
|00004080| 74 65 73 20 74 6f 20 6f | 75 74 70 75 74 0d 13 88 |tes to o|utput...|
|00004090| 25 53 57 49 20 22 4f 53 | 5f 57 72 69 74 65 4e 22 |%SWI "OS|_WriteN"|
|000040a0| 20 5c 77 72 69 74 65 20 | 64 65 66 69 6e 69 74 69 | \write |definiti|
|000040b0| 6f 6e 0d 13 92 37 4c 44 | 4d 46 44 20 52 31 33 21 |on...7LD|MFD R13!|
|000040c0| 2c 7b 50 43 7d 5e 20 5c | 66 6c 61 67 73 20 70 72 |,{PC}^ \|flags pr|
|000040d0| 65 73 65 72 76 65 64 20 | 61 63 72 6f 73 73 20 73 |eserved |across s|
|000040e0| 75 62 72 6f 75 74 69 6e | 65 0d 13 a6 38 2e 62 6c |ubroutin|e...8.bl|
|000040f0| 63 68 61 72 20 5c 32 33 | 2c 31 32 38 2c 30 2c 31 |char \23|,128,0,1|
|00004100| 32 37 2c 31 32 37 2c 31 | 32 37 2c 31 32 37 2c 31 |27,127,1|27,127,1|
|00004110| 32 37 2c 31 32 37 2c 30 | 20 74 68 65 6e 20 31 32 |27,127,0| then 12|
|00004120| 38 0d 13 b0 3f 45 51 55 | 42 32 33 3a 45 51 55 42 |8...?EQU|B23:EQUB|
|00004130| 31 32 38 3a 45 51 55 42 | 30 3a 45 51 55 57 20 26 |128:EQUB|0:EQUW &|
|00004140| 37 46 37 46 3a 45 51 55 | 44 26 37 46 37 46 37 46 |7F7F:EQU|D&7F7F7F|
|00004150| 37 46 3a 45 51 55 42 30 | 3a 45 51 55 42 31 32 38 |7F:EQUB0|:EQUB128|
|00004160| 0d 13 ba 09 41 4c 49 47 | 4e 0d 13 ce 3b 2e 64 65 |....ALIG|N...;.de|
|00004170| 66 6e 20 45 51 55 44 30 | 3a 45 51 55 44 30 3a 45 |fn EQUD0|:EQUD0:E|
|00004180| 51 55 44 30 20 5c 62 75 | 66 66 65 72 20 66 6f 72 |QUD0 \bu|ffer for|
|00004190| 20 64 65 66 69 6e 69 6e | 67 20 63 68 61 72 61 63 | definin|g charac|
|000041a0| 74 65 72 73 0d 13 d8 0b | 2e 66 69 6e 69 73 68 0d |ters....|.finish.|
|000041b0| 13 e2 05 5d 0d 13 ec 05 | ed 0d 13 f6 05 e1 0d ff |...]....|........|
+--------+-------------------------+-------------------------+--------+--------+